先算出奇数的个数,然后再分数组中的位置进行重新填充(需要克隆一个新数组)
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++; } } }