**题目描述:**输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
Java代码实现:
public class Solution {
public void reOrderArray(int [] array) {
if(array == null){
return;
}
for(int i = 1; i < array.length; i++){ //遍历整个数组
int temp = array[i];
int j = i - 1;
if(array[i] % 2 != 0){ //如果array[i]为奇数
while(j >= 0){
if(array[j] % 2 != 0){ //并且array[j]也为奇数,整个数组是奇数,直接输出
break;
}
if(array[j] % 2 == 0){ //如果array[j]为偶数,将偶数与奇数位置对换放到数组的后半部分
int t = array[j+1];
array[j+1] = array[j];
array[j] = t;
j--;
}
}
}
array[j+1] = temp;
}
}
}