百度的一道笔试题
2013-08-18 01:05
211 查看
一个数组由正数和负数组成,把所有的负数全部放到正数前面,并且要求负数之间,正数之间的相对位置不变。
首先可以肯定的是基于快排思想的方法是不行的,因为快排的不稳定的,鉴于此我们可以采用冒泡的方式,对每一个数,如果是负数就向左冒泡,如果是正数就向右冒泡
下面给出的是另一个思路
void arraydivsort(int a[],int n)
{
int temp=0;
int k=0;
int flag=0;
for(int i=0;i<n;) {
if(0==flag && a[i]<0)
k=i;
if(k-1>0 && a[k-1]>0) {
if(0==flag)
temp=a[k];
a[k]=a[k-1];
k--;
flag++;
if(a[k-1]<0){
a[k]=temp;
i++;
flag=0;
}
}
else
i++;
}
}
首先可以肯定的是基于快排思想的方法是不行的,因为快排的不稳定的,鉴于此我们可以采用冒泡的方式,对每一个数,如果是负数就向左冒泡,如果是正数就向右冒泡
下面给出的是另一个思路
void arraydivsort(int a[],int n)
{
int temp=0;
int k=0;
int flag=0;
for(int i=0;i<n;) {
if(0==flag && a[i]<0)
k=i;
if(k-1>0 && a[k-1]>0) {
if(0==flag)
temp=a[k];
a[k]=a[k-1];
k--;
flag++;
if(a[k-1]<0){
a[k]=temp;
i++;
flag=0;
}
}
else
i++;
}
}
相关文章推荐
- 百度一道笔试题(求n个整数连成一排组成的最小整数)
- 百度的一道笔试题:N个从大到小排好序的整型队列,求top M元素
- 百度一道笔试题目的答案
- 100盏灯经过一系列操作后最后还有多少盏灯亮着(百度的一道笔试题)
- 分享一道百度笔试程序题
- 百度一道笔试题
- 一道百度2014校招笔试题
- 20140920百度笔试题一道之二维矩阵查找
- 百度web前端的一道笔试题(CarFactory)
- 一道2017年百度笔试编程题
- 【2013一道百度的笔试题】两个字符串操作多少步后变成一样的(编辑距离)
- 据说是一道百度的笔试题
- 一道百度的盒子模型的笔试题
- 百度2013年校园招聘一道笔试题--三位密码组合问题递归求解
- 百度一道笔试题解法探讨
- 一道百度2014校招笔试题
- 百度一道关于promise笔试题的总结
- 百度2014校招一道笔试题
- 2015 百度笔试的一道经典题目
- 今年百度的一道笔试题