1. 程式人生 > >牛客網-調整陣列順序使奇數位於偶數前面

牛客網-調整陣列順序使奇數位於偶數前面

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

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int position = 0;
        int length=array.size();
        for (int i = 0; i < length; i++)
        {
            if ((array[i]%2)==0)
            {
                position = i;//找出第一個偶數的位置
                break;
            }
        }
        for (int i = position; i < length; i++)
        {
            if ((array[i]%2)!=0)//如果是奇數,則插入
            {
                int temp = array[i];//插入排序
                for (int j = i; j > position; j--)
                {
                    array[j] = array[j - 1];
                }
                array[position] = temp;
                position++;//注意,每次插入後第一個偶數的位置後移了一位
            }
        }
    }
};