您的位置:首页 > Web前端

剑指offer--调整数组顺序使奇数位于偶数前面

2015-04-11 12:09 344 查看

题目描述

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

分类:数组

解法1:类似选择排序,遍历每个元素,对于奇数,

向前遍历,使其前面的偶数向后覆盖,直到遇上奇数,结束遍历,最后将奇数放入正确位置
public class Solution {
public void reOrderArray(int [] array) {
for(int i=1;i<array.length;i++){
int temp = array[i];
if(array[i] % 2 == 1){//如果遇上奇数
int j = i-1;
while(j>=0 && (array[j]%2)==0){//向前覆盖,直到遇到偶数
array[j+1] = array[j];
j--;
}
array[j+1] = temp;//找到奇数的正确位置
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: