题解 | #调整数组顺序使奇数位于偶数前面#
调整数组顺序使奇数位于偶数前面
https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593
class Solution {
public:
void reOrderArray(vector<int> &array) {
int i=0;
for (int j=0; j<array.size(); ++j) {
if (array[j]%2!=0) {
int temp=array[j];
for (int k=j-1; k>=i; --k) {
array[k+1]=array[k];
}
array[i++]=temp;
}
}
}
};
思路
在遍历时候对奇数处理,将它们有序地放置在前面。每次遇到一个奇数,应该把它前移,为了保证移动到前面的相对顺序,需要一个指针来标识当前应该放的位置。(插入排序)
判断奇偶的方法
- 如果一个数除以2的余数为0,则该数为偶数;否则为奇数
if(i%2==0) if(i%2!=0)
- 如果一个数与1进行按位与运算的结果为1,则该数为奇数;否则为偶数
if (num & 1) {
cout << num << " 是奇数" << endl;
} else {
cout << num << " 是偶数" << endl;
}

