class Solution {
public:
    /**
       1.冒泡排序,空间复杂度为O(1)
        2.空间复杂度O(n)
        3.相对位置可以改变可以用快速排序
     */
    vector<int> reOrderArray(vector<int>& array) {
        int flag = true;
        while (flag) {
            flag = false;
            for (int i = 1; i < array.size(); ++i) {
                if(array[i-1]%2==0 && array[i]%2){
                    flag = true;
                    swap(array[i-1],array[i]);
                }
            }
        }
        return array;
    }
// 多声明一个O(n)空间
   vector<int> reOrderArray(vector<int>& array) {
        vector<int> res;
        for (auto n: array) {
            if (n % 2) {
                res.push_back(n);
            }
        }
        for (auto n: array) {
            if (n % 2==0) {
                res.push_back(n);
            }
        }
        return res;
    }

};