题解 | 整数奇偶排序
整数奇偶排序
https://www.nowcoder.com/practice/bbbbf26601b6402c9abfa88de5833163
按题目要求改写比较规则,利用sort排序动态数组
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
//修改比较规则
bool compare(int l,int r){
//不交换的情况返回真
//奇数在前偶数在后不交换
//奇数l>奇数r不交换
//偶数l<偶数r不交换
if((l%2!=0)&&(r%2==0)){
return true;
}else if((l%2!=0)&&(r%2!=0)&&l>r){
return true;
}else if((l%2==0)&&(r%2==0)&&l<r){
return true;
}else{
return false;
}
}
int main(){
vector<int> vec1(10);
//输入10个整数
for(int i=0;i<10;i++){
scanf("%d ",&vec1[i]);
}
sort(vec1.begin(),vec1.end(),compare);
vector<int>::iterator it;
printf("%d",vec1[0]);
for(it=vec1.begin()+1;it!=vec1.end();it++){
printf(" %d",*it);
}
return 0;
}

