对数组重新排列,使左边为奇数,右边为偶数

来源:互联网 发布:乘联会10月销量数据 编辑:程序博客网 时间:2024/05/05 11:44

思路:类似快速排序的原理

方法一:

void partition1(vector<int> &a){if(a.empty())return;int left = 0, right = a.size() - 1;while(left < right){while(left < right && a[left] % 2 == 1)left++;while(left < right && a[right] % 2 == 0)right--;swap(a[left], a[right]);}}
方法二:
void partition2(vector<int> &a){if(a.empty())return;int m = 1;for(int i = 1; i < a.size(); i++){if(a[i] % 2 == 1){swap(a[i], a[m]);m++;}}swap(a[m], a[0]);}


0 0
原创粉丝点击