注意本题和快排有一点区别:快排由于有x,不会生死循环的现象,快排中while(a[i] < x) 这里不会进入死循环,i可以一直进到x所在位置,就会跳出循环。
class Solution {
public:
void reOrderArray(vector<int> &array) {
int i = - 1, j = array.size() ;
while (i < j)
{
do i ++; while (i < j && array[i] % 2 == 1);
do j --; while (i < j && array[j] % 2 == 0);
if (i < j ) swap(array[i], array[j]);
}
}
};