输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。
要求时间复杂度为O(n)。
输入描述:
给定无序数组。
长度不超过1000000。
输出描述:
所有偶数位于数组的前半部分,所有奇数位于数组的后半部分。
如果有多个答案可以输出任意一个正确答案。
示例1
输入
2 4 5 7 8 1
输出
2 4 8 7 5 1
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main(){
vector<int> array;
vector<int> ji;
vector<int> ou;
int t;
while(cin>>t){array.push_back(t);
}
for (int i=0;i<array.size();i++){
if(array[i]%2==0){
ou.push_back(array[i]);
}
}
for (int i=0;i<array.size();i++){
if(array[i]%2==1){
ji.push_back(array[i]);
}
}
for (int i=0;i<ou.size();i++){
cout<<ou[i]<<" ";
}for (int i=0;i<ji.size();i++){
cout<<ji[i]<<" ";
}
};