題目描述
輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
解析思路
整體思路較簡單,就是先排奇數再排偶數。
然後整段代碼基本都帶上了註釋,有看不懂的可以留言。
運行代碼
public class Solution {
public void reOrderArray(int [] array) {
int length = array.length;
int m = 0;//用來計數當前已經排序了 幾個奇數
for(int i = 0;i<length;i++){
if(array[i]%2 == 1){//array[i]爲奇數時
int j = i;
while(j>m){ //當總數>奇數數目時,說明出現偶數,進行交換
int tmp = array[j];
array[j] = array[j-1];
array[j-1] = tmp;
j--; //用來跳出該while循環
}
m++;//每當有一個奇數時,m就加1
}
}
}
}