习题地址 https://www.acwing.com/solution/acwing/content/2921/
输入一个整数数组,实现一个函数来调整该数组中数字的顺序。
使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
样例
输入:[1,2,3,4,5] 输出: [1,3,5,2,4]
算法1
使用双指针 一个从前到后 一个从后到前
遇到不符合标准则互相替换
直到第一个指针比第二个指针大
C++ 代码
class Solution { public: void reOrderArray(vector<int> &array) { int p1 =0; int p2 = array.size()-1; while(p1<p2){ while(array[p1] %2 !=0){ p1++; } while(array[p2]%2 == 0){ p2--; } if(p1<p2){ swap(array[p1],array[p2]); p2--;p1++; } } return; } }; 作者:defddr 链接:https://www.acwing.com/solution/acwing/content/2921/ 来源:AcWing 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。