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

題目描述:

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

題目來源: 牛客網

思路:
主要利用插排的一個思路,
根據插排思路, 默認第一個數爲有序, 對應到本題就是無論奇偶.
從下標爲1遍歷數組, 若爲偶數什麼都不做, 若爲奇數則一次判斷前面數字的奇偶性, 遇到奇數停止插入

代碼示例:

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int len = array.size();
        int i, j;
        for (i = 1; i < len; ++i)
        {
            if (array[i] % 2 == 0)
                continue;
            int tmp = array[i];
            for (j = i - 1; j >= 0; --j)
            {
                if (array[j] % 2 == 0)
                    array[j + 1] = array[j];
                else
                {
                    break;
                }
            }
            array[j + 1] = tmp;
        }
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章