【快手笔试T1】数组优先级排序
发布日期:2021-05-28 16:52:33 浏览次数:26 分类:技术文章

本文共 704 字,大约阅读时间需要 2 分钟。

题目:

将数组元素安装一定的优先级顺序进行排序,规则如下:

(1)偶数排在奇数前面;

(2)同为奇数或者偶数时,数值大的排在前面。

输入:

第一行,待排序元素个数m

第二行,依次输入m个数,用空格隔开

输出:

输出排序后的数组

样例:

输入:

5

1 2 3 4 5

输出:

4 2 5 3 1

 

解答:

这个题直接用C++的sort函数就可以解决,较为简单,只需要自己写一个cmp的排序规则函数。

代码如下:

#include 
#include
#include
 using namespace std; int cmp(int a,int b){    if((( a%2 ==0) && (b % 2 == 0)) || (( a%2 ==1) && (b % 2 == 1)))//同为奇数或偶数,返回比较结果        return a > b;    else if( a%2 ==0 && b % 2 == 1) // a为偶数,b为奇数,返回1        return 1;    else    // a为奇数,b为偶数,返回0        return 0;} int main(){    vector
aa;    int m,t;    cin >> m;    for(int i=0;i
> t;        aa.push_back(t);    }    sort(aa.begin(),aa.end(),cmp);    for(int i=0;i

 

转载地址:https://blog.csdn.net/qq_34039018/article/details/100185129 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:整数取反(取负)运算
下一篇:C++如何提高Vector效率的一些方法

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年01月12日 15时29分00秒