输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
public class Solution {
public void reOrderArray(int [] array) {if(array==null||array.length ==0)
{
return;
}
int even = 0;
int ord =0;
while( even < array.length ){
while( even< array.length && (array[even] %2 !=0)){ //找到第一个偶数
even++;
}
ord= even+1;
while( ord < array.length && (array[ord]%2 == 0)){
ord++; //第一个偶数后面的第一个奇数
}
if(ord < array.length){
//arr[even]与arr[ord]之间都是偶数,将此部分后移一位,奇数插到这部分前面
int temp = array[ord];
for(int i = ord -1 ; i>=even ;i--){
array[i+1]=array[i];
}
array[even] = temp;
}else{
break; //直到在第一个偶数后面找不到奇数,便是排序完成
}
}
}
}