AcWing 32. 調整數組順序使奇數位於偶數前面

習題地址 https://www.acwing.com/solution/acwing/content/2921/算法

輸入一個整數數組,實現一個函數來調整該數組中數字的順序。數組

使得全部的奇數位於數組的前半部分,全部的偶數位於數組的後半部分。函數

樣例spa

輸入:[1,2,3,4,5]

輸出: [1,3,5,2,4]

算法1
使用雙指針 一個從前到後 一個從後到前
遇到不符合標準則互相替換
直到第一個指針比第二個指針大指針

C++ 代碼code

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int p1 =0;
        int p2 = array.size()-1;

        while(p1<p2){
            while(array[p1] %2 !=0){
                p1++;
            }

            while(array[p2]%2 == 0){
                p2--;
            }

            if(p1<p2){
                swap(array[p1],array[p2]);
                p2--;p1++;
            }
        }

        return;
    }
};


做者:defddr
連接:https://www.acwing.com/solution/acwing/content/2921/
來源:AcWing
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索