百度面试题选

来源:互联网 发布:网络当前热销产品 编辑:程序博客网 时间:2024/05/02 11:13

1,给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。

要求空间复杂度O(1),时间复杂度O(n)

#include <iostream>using namespace std;void Swap(int *a,int *b){int t=*a;*a=*b;*b=t;}void oddevensort(int data[],unsigned int length){if(length < 1)  return ;int begin = 0;  int end = length - 1;while(end > begin){if (data[begin]%2==0){begin++;}if (data[end]%2!=0){end--;}Swap(&data[begin],&data[end]);}}int main(){int a[10]={0,1,4,6,7,9,10,12,2,5};oddevensort(a,10);for (int i=0;i<10;i++){cout<<a[i]<<endl;}system("pause");return 0;

初步程序算法如上,采用两头扫描的方式。



原创粉丝点击