输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
原地排序可以直接实现(C++)
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int begin = 0;
int end = nums.size() - 1;
while (begin < end)
{
while (begin < end)
{
if (nums[begin] % 2 == 0)//偶数
{
break;
}
else if (nums[begin] % 2 != 0)
{
begin++;
}
}
while (begin < end)
{
if (nums[end] % 2 == 0)
{
end--;
}
else if (nums[end] % 2 != 0)
{
break;
}
}
swap(nums[begin],nums[end]);
}
}
};