思路:利用插入排序的思想,记录第一个偶数,遍历数组,如果是奇数且前面有偶数,则将其插入到第一个偶数的位置。遍历结束则完成排序。
代码实现:
void reOrderArray(vector<int> &array) {
int len = array.size();
int fuzhu = len;
for (int i = 0; i < len; i++){
if (array[i] % 2 == 0){
if(i<fuzhu)fuzhu = i;
}
else{
if (i > fuzhu){
int a = array[i];
for (int j = i; j > fuzhu; j--){
array[j] = array[j - 1];
}
array[fuzhu] = a;
fuzhu++;
}
}
}
}