hdu 1872(稳定排序)
稳定排序就是相同元素排序后次序不会发生改变的排序方法.
冒泡是稳定排序.
快一点的归并也是稳定排序.
稳定排序
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2766 Accepted Submission(s): 1081
如果对于数组中出现的任意a[i],a[j](i<j),其中a[i]==a[j],在进行排序以后a[i]一定出现在a[j]之前,则认为该排序是稳定的。
某高校招生办得到一份成绩列表,上面记录了考生名字和考生成绩。并且对其使用了某排序算法按成绩进行递减排序。现在请你判断一下该排序算法是否正确,如果正确的话,则判断该排序算法是否为稳定的。
对于每组数据,第一行有一个正整数N(0<N<300),代表成绩列表中的考生数目。
接下来有N行,每一行有一个字符串代表考生名字(长度不超过50,仅包含'a'~'z'),和一个整数代表考生分数(小于500)。其中名字和成绩用一个空格隔开。
再接下来又有N行,是上述列表经过某排序算法以后生成的一个序列。格式同上。
注意,本题目不考虑该排序算法是错误的,但结果是正确的这样的意外情况。
#include <stdio.h> #include <string.h> #include <string> #include <iostream> using namespace std;struct node {char str[100];int key; };node g[300],g1[300];int main() {int n;while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++){scanf("%s %d",g[i].str,&g[i].key);}for(int i=0;i<n;i++)scanf("%s %d",g1[i].str,&g1[i].key);for(int i=0;i<n;i++)for(int j=i;j>0;j--){if(g[j].key>g[j-1].key) {char tmp[100];strcpy(tmp,g[j-1].str);strcpy(g[j-1].str,g[j].str);strcpy(g[j].str,tmp);int tt;tt=g[j].key;g[j].key=g[j-1].key;g[j-1].key=tt;}}int flag=0;for(int i=0;i<n;i++){if(g1[i].key!=g[i].key){flag=1;break;}}if(flag==1){printf("Error\n");for(int i=0;i<n;i++)printf("%s %d\n",g[i].str,g[i].key);continue;}for(int i=0;i<n;i++){if(strcmp(g1[i].str,g[i].str)!=0){flag=1;break;}}if(flag==1){printf("Not Stable\n");for(int i=0;i<n;i++)printf("%s %d\n",g[i].str,g[i].key);continue;}printf("Right\n");}return 0; }
hdu 1872(稳定排序)相关推荐
- hdu 1872 稳定排序
这个题我弄了一下午,刚开始测试的结果是和例子一样,但是就是错误答案.看了下网上的答案才知道自己错在哪了: 它首先是按成绩排名的当成绩一样是就要原先的先后顺序排的.刚开始我一直以为都是按名字排的.哎.. ...
- 杭电Problem 1872 稳定排序
稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 杭电1872稳定排序
稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 稳定排序与不稳定排序的定义
如果队列中存在两个相等的数字排序过程中 这两个数字的先后顺序如果不会发生变化 就叫做稳定的排序反之叫做不稳定 参考文章:稳定排序和不稳定排序.
- python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)
from numpy\core_multiarray_umath.py @array_function_from_c_func_and_dispatcher(_multiarray_umath.lex ...
- boost::sort模块实现测试并行稳定排序
boost::sort模块实现测试并行稳定排序 实现功能 C++实现代码 实现功能 boost::sort模块实现测试并行稳定排序 C++实现代码 #include <ciso646> # ...
- HDU--1872 稳定排序
大家都知道,快速排序是不稳定的排序方法. 如果对于数组中出现的任意aii,ajj(i<j),其中aii==ajj,在进行排序以后aii一定出现在ajj之前,则认为该排序是稳定的. 某高校招生办 ...
- HDU 4857 拓扑排序 优先队列
n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得 ...
- 面趣 | 为什么要分稳定排序和非稳定排序?
作者 channingbreeze 如需转载,请联系原作者. 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 今天他去了一家互联网小巨头 ...
最新文章
- python发送文件到邮箱_python发送文件夹内容到邮箱
- c语言读取一个图像文件格式,求指导,如何用c语言实现读取*.raw格式图像
- .NET应用迁移到.NET Core(三)从商业角度看移植过程
- 服务器多网站布置,如何在一台服务器上实现多个web站点的方法
- Combobox绑定数据源DataSet
- 字典排序 python3_这10个字典操作你必须知道
- HTML5与触摸界面
- php格式转换rar,如何在PHP中创建压缩的RAR文件?
- XSS跨站之原理分类及攻击手法
- 比较好的自媒体平台推荐,揭秘哪个自媒体平台收入最高
- 欢乐颂 c语言编程代码,欢乐颂
- 触发onblur事件alert死循环问题
- QQ-360大战影响恶劣
- Android 10.0在电话拨号盘(Dialer app中)通过暗码进入工厂测试模式
- 健身房训练计划—背部
- Vue-GoogleMap (一)实时定位
- 专题一:Labview表格控件 及 应用(二)
- [附源码]Python计算机毕业设计SSM基于框架的报修系统(程序+LW)
- 使用百度在网络上搜索资料 在计算机,利用百度搜索资料认识计算机.doc
- 『XXG探索』canvas 获取图片主体颜色
热门文章
- POJ1548最小路径覆盖
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 构造函数分析 | makeDexElements 函数分析 )
- 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )
- 【Android RTMP】音频数据采集编码 ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 )
- HTTP状态码--含义
- Java截取最后一个/后面的所有字符
- android闹钟(五):实现闹钟功能
- Codeforces Gym 100676G Training Camp 状压dp
- poj 1379 模拟退火法
- Hadoop–Task 相关