您的位置:首页 > Web前端

剑指offer(13)—调整数组顺序使奇数位于偶数前面

2017-08-26 23:34 246 查看

调整数组顺序使奇数位于偶数前面

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路

插入排序思想,i从0~n-2,若i+1处的值为奇数,则向前查找,不断与前面的偶数交换位置,即将奇数不断的插入到偶数之前。

代码

class Solution {
public:
void reOrderArray(vector<int> &array) {
int i,j;
int n = array.size();
for(i=0; i<n-1; i++){
if(array[i+1]%2==1){
int cur = array[i+1];
for(j=i; j>=0 && array[j]%2==0; j--){
int tmp = array[j+1];
array[j+1] = array[j];
array[j] = tmp;
}
array[j+1] = cur;
}
}
return;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: