Java調整數組順序使奇數位於偶數前面

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

這道題就是將數組分爲奇數部分和偶數部分,每遍歷到一個奇數,就迭代地將其放入前面奇數部分,每遍歷到一個偶數,就繼續遍歷。相當於任意奇數都小於任意偶數,所有奇數都相等,所有偶數都相等,然後使用快速排序排序數組。

public void reOrderArray(int [] array) {
        if (array == null || array.length < 2) {
            return;
        }
        int n = array.length;
        for (int i = 1; i < n; i++) {
            // 當前元素是奇數,就移動到奇數序列
            if (array[i] % 2 != 0) {
                int value = array[i];
                int cur = i;
                while (cur > 0 && (array[cur - 1] % 2 == 0)) {
                    array[cur] = array[cur - 1];
                    cur--;
                }
                array[cur] = value;
            }
            // 當前元素是偶數,無須移動
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章