栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用qsort()进行稳定排序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用qsort()进行稳定排序?

最后,我错过了描述中的一行:

输入包括多个测试用例。在每个测试用例中,第一行包含一个整数N。

经过几种方法,我通过以下代码通过了它:

class People{    public:        char name[11];        int grade;        int order;        void print(){ printf("%s %dn", name, grade);        }};int compar(const void *a, const void *b){    People *A = (People*)a;    People *B = (People*)b;    if(A->grade > B->grade) return 1;    else if(A->grade < B->grade) return -1;    else if(A->order > B->order) return 1;    else if(A->order < B->order) return -1;    return 0;}int main(){    int n;    while(scanf("%d", &n)!=EOF){        People *p = new People[n];        for(int i=0;i<n;i++){ scanf("%s %d", p[i].name, &p[i].grade); p[i].order = i;        }        qsort(p, n, sizeof(People), compar);        for(int i=0;i<n;i++){ p[i].print();        }        delete[] p;    }}

std :: stable_sort正常工作,但是,它收到TLE(超过时间限制),并且cin / cout也导致TLE。这就是我坚持使用printf /
scanf的原因。

感谢大家回答这个问题!:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号