1. 程式人生 > >劍指offer____調整陣列順序使奇數位於偶數前面

劍指offer____調整陣列順序使奇數位於偶數前面

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

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int len = array.size();
        if(len <= 1) return;
        int left = 0;
        int right = len - 1;
        int *swap=(int *)malloc(sizeof(int)*len);
        if(swap == NULL) return;
        int i = 0;
        int j = len - 1;
        while(left < len && right >-1)
        {
            if(array[left]%2 != 0)
            {
                swap[i++] = array[left];
            }
            if(array[right]%2 == 0)
            {
                swap[j--]= array[right];
            }
            left++;
            right--;
        }
        for(int k = 0; k < len; ++k)
        {
            array[k]=swap[k];
        }
        free(swap);
        swap = NULL;
    }
};