题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
解题思路
- 维护两个指针,p1指向数组第一个数字,它只向后移动;p2指向数组最后一个数字,它只向前移动。
- 当p1指针指向偶数,p2指针指向奇数,则交换这两个数字。
- 当p2指针已经在p1指针前面,此时所有奇数已经在偶数前面了。
举例:12345->15342。
代码
冒泡排序法:
//这里提供一种思路,类似冒泡排序,从数组最后开始,循环判断
//如果前偶后奇就交换位置,每一轮交换到最前面,外循环控制前边界
class Solution{
public:
void reOrderArray(vector<int> &array){
//数组长度为0
if(array.size() == 0) return;
int n = array.size();