劍指offer---調整數組順序使奇數位於偶數前面(Java)

題目描述

輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

解析思路

整體思路較簡單,就是先排奇數再排偶數。
然後整段代碼基本都帶上了註釋,有看不懂的可以留言。

運行代碼

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
            }
        }
    }
}

效果如圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章