题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
class Solution {
public:
void reOrderArray(vector<int> &array) {
int len = array.size();
if(len <= 0)
{
return ;
}
int odd = 0 ,even = 0;
while(odd < len)
{
//寻找奇数
if((array[odd] % 2 != 1) && odd < len)
{
odd++;
continue;
}
if(odd > even)
{
if(array[even] % 2 != 0)
{
even++;
continue;
}
int value = array[odd];
for(int index = odd; index > even; index--)
{
array[index] = array[index-1];
}
array[even] = value;
even++;
odd++;
}
else
{
odd++;
}
}
}
};