题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
要将奇数和偶数存入数组的前面和后面,并且保持相对位置不变,只要将奇数放到第一个偶数的前面就可以了。
例如
2,1,3,6,9 将1放到第一个偶数2的前面
1,2,3,6,9 将3放到2的前面
1,3,2,6,9 将9放到2的前面
1,3,9,2,6 此时就完成了题目的要求
public void reOrderArray(int [] array) {
int index = -1;
for(int i = 0;i < array.length;i++){
if(array[i] % 2 == 1){
if(index >= 0){
int temp = array[i];
for(int j = i;j > index;j--){
array[j] = array[j-1];
}
array[index] = temp;
index ++;
}
}else {
if(i == 0) index = 0;
if(index < 0) index = i;
}
}
}