类比排序算法,左边为已经处理好的,右边是待处理的,
用count来表示前一部分的奇数个数,
如果count==k(当前下标)说明前面有一个偶数还需要调整
#include<vector>
#include<iostream>
using namespace std;
void reOrderArray(vector<int> &array){
int count = 0;
for (int i = 0; i < array.size(); ++i){
if (array[i] % 2 == 1){
count++;
if (i == 0){
continue;
}
int tmp = array[i];
int k = i;
while (k >= count){
array[k] = array[k - 1];
k--;
}
array[count - 1] = tmp;
}
}
}
int main(){
vector<int> v1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
reOrderArray(v1);
for (int i = 0; i < v1.size(); i++){
cout << v1[i]<<" ";
}
system("pause");
return 0;
}
将数组中的奇数放在偶数前面,但是不改变奇数、偶数原来的排布(牛客网)
猜你喜欢
转载自blog.csdn.net/cx2479750196/article/details/80521988
今日推荐
周排行