唯一要注意的地方是STL中 sort函数的用法,以及边界问题,注意!!
class Solution3 {
public:
bool fun(int &a)
{
if (a & 0x1 == 1)
return true;
else
return false;
}
void reOrderArray(vector<int> &array) {
int start = 0;
int end = array.size() - 1;
while (start<end)
{
while (fun(array[start]))start++;
while(!fun(array[end]))end--;
if(start<end)swap(array[start], array[end]);
}
sort(array.begin(), array.begin()+start);
sort(array.begin() + end+1, array.begin() + array.size() );
}
};
尤其是sort函数的边界;