稳定排序

稳定排序与不稳定排序方法的分类和总结 排序算法的稳定性是指排序前 2 个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。简单来说就是,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果... 阅读详情

HPU2017-sort+结构体练习 - Virtual Judge  https://cn.vjudge.net/contest/173011#problem/E

大家都知道,快速排序是不稳定的排序方法。 
如果对于数组中出现的任意a[i],a[j](i<j),其中a[i]==a[j],在进行排序以后a[i]一定出现在a[j]之前,则认为该排序是稳定的。 

某高校招生办得到一份成绩列表,上面记录了考生名字和考生成绩。并且对其使用了某排序算法按成绩进行递减排序。现在请你判断一下该排序算法是否正确,如果正确的话,则判断该排序算法是否为稳定的。 
Input
本题目包含多组输入,请处理到文件结束。 
对于每组数据,第一行有一个正整数N(0<N<300),代表成绩列表中的考生数目。 
接下来有N行,每一行有一个字符串代表考生名字(长度不超过50,仅包含'a'~'z'),和一个整数代表考生分数(小于500)。其中名字和成绩用一个空格隔开。 
再接下来又有N行,是上述列表经过某排序算法以后生成的一个序列。格式同上。
Output
对于每组数据,如果算法是正确并且稳定的,就在一行里面输出"Right"。如果算法是正确的但不是稳定的,就在一行里面输出"Not Stable",并且在下面输出正确稳定排序的列表,格式同输入。如果该算法是错误的,就在一行里面输出"Error",并且在下面输出正确稳定排序的列表,格式同输入。 

注意,本题目不考虑该排序算法是错误的,但结果是正确的这样的意外情况。
Sample Input
3
aa 10
bb 10
cc 20
cc 20
bb 10
aa 10
3
aa 10
bb 10
cc 20
cc 20
aa 10
bb 10
3
aa 10
bb 10
cc 20
aa 10
bb 10
cc 20
Sample Output
Not Stable
cc 20
aa 10
bb 10
Right
Error
cc 20
aa 10
bb 10
#include<stdio.h>
#include<algorithm>
#include<string.h>
struct stu{
	char name[60];
	int num;
	int data;
}a[500],b[500];
using namespace std;
bool cmp(stu a,stu b)
{
	if(a.num==b.num) return a.data<b.data;
	else return a.num>b.num;
}
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF){
		int i,f1=0,f2=0,t=0;
		for(i=0;i<n;i++)
		{
			scanf("%s %d",&a[i].name,&a[i].num);
			a[i].data=i;
		}
		for(i=0;i<n;i++)
		scanf("%s %d",&b[i].name,&b[i].num);
		sort(a,a+n,cmp);
		for(i=0;i<n;i++){
		    t=strcmp(a[i].name,b[i].name);
			if(t==0&&a[i].num==b[i].num&&f1==0) ;
			else {
				f1=1;
				if(a[i].num==b[i].num) ;
				else{
					f2=1; break;
				}
			}
		}
		
		if(f1==0) printf("Right\n");
		else {
			if(f2==0) printf("Not Stable\n");
		    else  printf("Error\n");
			for(i=0;i<n;i++)
		    printf("%s %d\n",a[i].name,a[i].num);
		}
	}
	return 0;
}






学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算 阅读详情

相关推荐

使用ShaderGraph制作URP各向异性

URP上用shaderGraph实现各向异性效果,解决只能用shader的问题

dreamform的专栏 1099

HDOJ1872(稳定排序)

稳定排序 Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1066Accepted Submission(s): 408 Problem Description 大家都知道,快速排序是不稳定的排序方法。 如果对于...

weixin_30402085的博客 491

FlexibleButton嵌入式按键处理方案设计与实现

嵌入式系统中的按键处理是基础且关键的人机交互技术,其核心原理是通过GPIO电平检测结合状态机实现事件识别。FlexibleButton作为轻量级C语言按键处理库,采用硬件抽象层设计实现驱动解耦,支持单击、双击、长按等丰富事件类型。该方案通过集中式扫描策略和内置消抖算法,在RT-Thread和裸机环境中均能稳定运行,特别适合需要组合按键检测和低功耗优化的物联网设备。典型应用场景包括智能家居控制面板和工业HMI界面开发,其中硬件解耦架构和事件驱动模型显著提升代码复用率。

weixin_35757191的博客 402

HDU - 1106 排序 【字符串分割】+【排序】

Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。 Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数...

一定要站在自己热爱的生活里闪闪发光 3万+

A-Level经济例题解析及练习Opportunity Cost

例题Question: Opportunity CostYou are selling your 1996 Mustang.&nbsp; You have already spent $1000 on repairs.&nbsp;At the last minute, the transmission dies.&nbsp; You can pay $600 to have it repaired, or sell the car “as is.”In each of the fol

Alevel3的博客 746

普罗米修斯监控达梦数据库集群

-----------------------------------新增文件---------------------------------------注:图上即为启动成功,如果没有问题,则使用nohup后台启动程序。官网地址:https://github.com/gy297879328/dameng_exporter。注:prometheus的对数据库的指标采集如果高于60s一次,请手动修改提供表盘中的计算值。修改dameng_exporter.config配置文件,修改账号密码的部分。

weixin_49985403的博客 1684

HDU 排序

排序 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 17 Accepted Submission(s) : 5 Font: Times New Roman | Verdana | Georgia Font Size: ← →

Gamedev 706

Transformer代码(Pytorch实现和详解)!!!

这个是第一版,有些代码如果不对,欢迎在评论指正,后续会慢慢改,我也是刚接触transformer,若有些地方理解不对还请指正。

xml的博客 5614

排序算法问题:稳定排序与不稳定排序

转载自:https://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 稳定排序和不稳定排序 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的...

sunshinefcx的博客 2万+

基于共识的捆绑算法CBBA在多无人机多任务调度中的实现

在捆绑过程中,每个无人机根据自己的任务清单和其他无人机的任务清单,确定一个被称为“束”的集合。通过合理的任务分配和无人机协作,CBBA算法能够实现最优的任务调度,提高了多无人机系统的效率和执行能力。在每一轮迭代中,无人机根据自己的当前任务和位置信息将任务清单发送给其他无人机,并接收其他无人机发送过来的任务清单。通过比较其他无人机的任务清单和自身的任务清单,每个无人机可以更新自己的任务分配情况。在这一步中,每个无人机根据自己选择的新任务,更新自身的任务清单,并将更新后的清单发送给其他无人机。

持续更新 1156

Python 对接钉钉获取员工上一篇日报或周报内容

摘要:本文介绍使用Python对接钉钉API获取员工日报/周报的方法。首先需创建钉钉应用并开通日志权限,获取员工UserID。通过获取AccessToken进行鉴权,调用topapi/report/list查询日志记录,筛选最新日报/周报后,使用topapi/report/details获取详细内容。需注意权限控制、时间范围筛选和模板匹配等问题。文末提供完整代码示例,并建议扩展自动化触发、数据存储等功能。该方法适用于企业自动化获取员工工作日志的场景。

从技术实践立足,从项目管理方法论延伸思考 814

稳定排序与不稳定排序的区别

稳定和不稳定排序详解 参考:https://www.jianshu.com/p/7c03e5eb143c 稳定排序有:插入排序、冒泡排序、归并排序、基数排序 不稳定排序有:选择排序、快速排序、希尔排序、堆排序 稳定排序 插入排序: 在一个有序的序列中插入一个数,使插入后的序列保持有序。 因为插入的过程中都是从后向前进行查找,遇到小于等于(或大于等于)的数停止寻找,进行插入操作。 不改变排序前后相等数值的相对顺序,故使稳定的排序算法。 冒泡排序: 冒泡故名思义,数值小的向上飘,数值大的向下

Think_and_work的博客 7935

【毕业设计之python系列】基于Flask的在线音乐网设计与实现

本论文旨在通过使用Python的Web框架Flask,设计和实现一个具有完整功能的在线音乐网站。该网站包括用户注册、登录、注销、歌曲上传、编辑、删除、歌单创建、编辑、删除、评论、搜索、音乐播放等功能,并针对不同用户角色(如普通用户、管理员)实现了不同的权限管理。同时,本论文还介绍了如何使用第三方API(如网易云音乐API)获取歌曲信息等技术实现。在设计上,本论文采用了MVC(Model-View-Controller)架构模式,将后端数据处理与前端展示分离,以便于代码的管理和维护。在数据库设计方面,本论文设

m0_56073435的博客 3248

稳定排序和不稳定排序

转载自:https://www.cnblogs.com/ella-ella/p/3775833.html 稳定排序和不稳定排序的区别: 通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同,则称之为稳定排序,在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前则为稳定排序,否则为不稳定排序。 ...

寂蝶难双,窃窃思羽. 2329

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【C++】稳定排序和不稳定排序

      这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。       首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序...

Trey_优快云 的优快云博客 5025

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

稳定排序和非稳定排序

换句话说,如果原始序列中有两个元素。之前,那么在排序后的序列中,在 C++ STL 中,是稳定排序的实现,而。

Leo@Apas 558

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HDU1872 稳定排序【稳定排序】

稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10289 Accepted Submission(s): 3742 Problem Description 大家都知道,快速排序是不稳定的排序方法。 如果对于数组中出现的任...

海岛Blog 934

彻底搞懂排序算法!从稳定排序到不稳定排序的全面解析

排序算法是编程世界的基础,也是面试中的常客。但你真的搞清楚了哪些算法是的,哪些是的吗?别担心,这篇文章将带你轻松搞懂常见排序算法,并彻底掌握“稳定”和“不稳定”排序的核心区别。无论你是新手还是想加深理解,本文都将是你不可错过的宝藏。

qq_53199129的博客 3002

排序的稳定性

稳定性定义:排序前后两个相等的数相对位置不变,则算法稳定。 稳定性得好处:从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。 各排序算法的稳定性: (图源水印) 稳定的: 冒泡排序:小的元素往前调或者把大的元素往后调;比较是相邻的两个元素比较,交换也发生在这两个元素之间; 因为相等的元素不会进行交换,所以稳定 插入排序:已经有序的小序列的基础上,一次插入一个元素;...

Mercuriooo的博客 3682

稳定排序的概念

文章目录什么是稳定排序?稳定排序的意义:哪些些排序方法一定是稳定排序 什么是稳定排序? 假设我们有如下序列:51,1,3,52{5_1, 1, 3, 5_2}51​,1,3,52​,其中有两个相同的 555;稳定排序与不稳定排序分别如下: 稳定排序:1,3,51,52{1, 3, 5_1, 5_2}1,3,51​,52​;两个 555 的顺序没有变; 不稳定排序:1,3,52,51{1, 3,...

ZachZheng的专栏 1788

为什么要区分稳定和不稳定排序

排序算法,相信你不会陌生~快排、冒泡、选择、归并等等,几大排序算法中,有的是稳定排序,有的则是不稳定排序。但是你有没有想过,既然排序得到的结果都是有序的,为什么还要区分稳定与不稳定呢?

浮晓悠羡 2446

稳定排序和不稳定排序的区别和代表

关于排序稳定性的定义 通俗地讲就是能保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 问题来了,什么时候必须要求使用稳定排序呢? 由上面的定义可知道稳定性排序保证了排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 那么,当现实应用中排序的需求需要区别先后...

ACBC12345的博客 1609
下一篇: 今年暑假不AC(贪心)
☞十一
博客等级 码龄9年 8粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值