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