题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路:创建个数组,遍历奇数,存入,遍历偶数存入,覆盖原数组。
class Solution {
public:
void reOrderArray(vector<int> &array) {
//2017年-6-18- 周日
//思路:偶数:123456
//辅助数组肯定不行
//奇数:1234567
//从前往后扫。若为奇数则不动,若为偶数则。
//判断是否为
//插入排序。快速排序是不稳定的
if(array.empty()) return ;
// vector<int> tmp()
//扫描奇数,前移,偶数存在辅助数组里
//1 快速排序
//创建辅助数组
//
int len=array.size();
vector<int> tmp;
//奇怪,太多,做出来总比做不出来好
//zhengqigu
int index=0;
while(index<len)
{
//判断是奇数吗,是就不动
if(array[index]%2==1)
{
//偶数的话,怎么移动呢
tmp.push_back(array[index]);
}
index++;
}
index=0;
while(index<len)
{
//判断是奇数吗,是就不动
if(array[index]%2==0)
{
//偶数的话,怎么移动呢
tmp.push_back(array[index]);
}
index++;
}
//覆盖原数组
array=tmp;
}
};