题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
代码:
方法一——只完成基本功能的解法,冒泡排序的思路,复杂度O(n^2)
void adjustoddeven(vector<int>& v) {
int len = v.size();
int count = -1;
while (count != 0) {
count = 0;
for (int i = 0; i < len - 1; i++) {
int j = i + 1;
if (v[i] % 2 == 0 && v[j] % 2 == 1) {
int t = v[i];
v[i] = v[j];
v[j] = t;
count++;
}
}
}
}
方法二——维护两个指针,一个在前面,一个在后面,复杂度O(n^2)