调整数组顺序使奇数位于偶数前面
题目 调整数组顺序使奇数位于偶数前面
思路分析
快排一样的思路
i指针从第一个元素的左边开始 j指针从最后一个元素的右边开始
往中间逼近 如果i找到了一个偶数 停止 j找到了一个奇数 停止
如果i是小于j的 就交换两个指针的值
代码实现
class Solution {
public:
void reOrderArray(vector<int> &array) {
//0开始 所以从0左边的位置开始找 size是最后一个数的右边 快排模板
int i=-1,j=array.size();
while(i<j)
{
do{
i++;
}while(i<j && array[i] % 2 == 1);//找到偶数停止
do{
j--;
}while(i<j && array[j] % 2 == 0);//找到奇数停止
if(i<j)
swap(array[i],array[j]);//交换
}
}
};
💬 评论