输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
class Solution {
public:
void reOrderArray(vector<int> &array) {
int position = 0;
int length=array.size();
for (int i = 0; i < length; i++)
{
if ((array[i]%2)==0)
{
position = i;//找出第一个偶数的位置
break;
}
}
for (int i = position; i < length; i++)
{
if ((array[i]%2)!=0)//如果是奇数,则插入
{
int temp = array[i];//插入排序
for (int j = i; j > position; j--)
{
array[j] = array[j - 1];
}
array[position] = temp;
position++;//注意,每次插入后第一个偶数的位置后移了一位
}
}
}
};