EOJ 2849 成绩排序 C++

STL库sort和stable_sort函数 一次失败的尝试写在前面:期中考试终于落下了帷幕,我又有时间来做oj题了【捂脸感觉比起写数据结构,做oj题更需要技巧,合理使用库函数很必要。今天这道题企图用sort和stable_sort函数来做,但是失败了(嘤嘤嘤)。失败的原因是: 库里的sort函数是不稳定的排序。(若相等元素的原本相对次序在排序后保持不变,则称这个排序是稳定的)参考博...
摘要由CSDN通过智能技术生成

STL库sort和stable_sort函数

写在前面:

期中考试终于落下了帷幕,我又有时间来做oj题了【捂脸
近期一直在学数据结构,感觉好久没做OJ题了,,
比起写数据结构,我觉得做oj题更需要技巧,然后合理使用库函数很必要。

今天这道题一开始一直WA,以为是sort或stable_sort函数的问题,
最后在论坛大佬指点下终于找到了错误,是字符串比较出现了问题【扶额

不管他能不能看到,在这里,一定要感谢那位老哥,一针见血指出我的问题~

- 出错点:
  1. 库里的sort函数是不稳定的排序。(所以sort两遍行不通)
    两种解决方法:①改写cmp函数,使之可以二级排序;②用两遍stable_sort
  2. 用字符数组存的学号,在比较时直接用 < 来比
    解决方法:使用库函数 strcmp 来比较学号大小(字典序)。
- 参考博客:

题目:

  1. 成绩排序
    单点时限: 2.0 sec
    内存限制: 256 MB
    有 n(1⩽n⩽100)个学生的成绩记录,其中包含学号和成绩两项。

按照成绩从高到低顺序输出成绩及格(⩾60)学生的学号和成绩。成绩相同时按照学号从小到大顺序输出。
输入格式
第 1 行:输入一个整数 n,表示学生记录数。

第 2 行 ~ n+1 行:每行是学号(11 位数字)及成绩(0 到 100 之间的整数)。学号和成绩之间有一个空格。

输出格式
按要求输

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值