先算出奇数的个数,然后再分数组中的位置进行重新填充(需要克隆一个新数组)
public void reOrderArray(int [] array) {
if(array.length <= 1)
return;
int cnt = 0; /*记录奇数的个数*/
for(int i = 0; i < array.length; i++){
if((array[i]&1) != 0)
cnt++;
}
int q = 0,h = cnt;
int[] copy = array.clone();
for(int i = 0; i < copy.length; i++){
if((copy[i]&1) != 0){
array[q] = copy[i];
q++;
}else{
array[h] = copy[i];
h++;
}
}
}

京公网安备 11010502036488号