[編程題]調整數組中奇數和偶數順序

輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
解題思路:
看到網上主要分爲兩種思路:
1.重新開闢兩個數組,分別存放奇數和偶數;
或者是開闢一個數組,遇到偶數將原來的數組中偶數元素刪除,將偶數元素放在新數組中,最後插入原來數組
2.判斷奇數和偶數位置,整體偏移
我主要借鑑冒泡排序的算法,採用改進的冒泡排序算法。

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int len=array.size();
        bool flag=true;
        for(int i=0;i<len-1;++i)
        {
            flag=false;
            for(int j=0;j<len-i-1;++j)
            {
                if((array[j]%2==0)&&(array[j+1]%2!=0))
                {
                    array[j]=array[j]+array[j+1];
                    array[j+1]=array[j]-array[j+1];
                    array[j]=array[j]-array[j+1];
                    flag=true;                   
                }

            }
            if(!flag){break;}
        }

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