排序算法稳定性分析及其意义

12 篇文章 0 订阅
订阅专栏

2019-08-05

排序算法

排序.PNG

各种排序方法的性能比较

排序算法比较.PNG

排序算法稳定性分析

sort.jpg

各种排序比较.PNG

结论1.PNG

1.PNG

2.PNG

3.PNG

4.PNG

稳定性的定义

在一张大表内包含了整个年级所有的班的同学的考试成绩,当然为了区别每个同学是来自哪个班的,相应的也有班级这个字段来标识。现在,我们依据总成绩这个字段来将全年级的同学进行一个排名,排序的结果当然是各个班级的学生穿插在一起,大致如下表所示:

姓名班级成绩
张三295
李四193
王五290
赵六380
丁七370

…… …… ……

在得到这样的排序结果之后,我们可以大致了解到每个同学在全年级中的名次,那么如果想要得到每个同学在班级中的名次呢,我们能否在现有排序的基础上,以班级这个字段为依据进行排序呢?如果,我们所采用的排序算法不稳定,那么很可能我们在对班级字段进行排序后得到下面这个结果:

姓名班级成绩
李四193
王五290
张三295
赵六380
丁七370

…… …… ……

我们发现,在班级这个字段进行重排的过程中,张三这条字段虽然调整到李四之后,但是他和王五的相对次序与原表中发生了改变,这样第一次排序中产生的成绩降序这个实际意义在班级这个小的序列中就无法作为参考依据,那么如果我们希望查询学生在班级中的名次,在原大表中不论怎么重排都是无法做到的,任何一个字段的排序就会使得之前排好的其他字段的排序关系失效,我们不得不开辟新的空间来存储各个班的学生数据,花费额外的时间成本和空间成本,这样无疑是非常浪费的。

通过这个案例我们可以看出稳定的排序算法能够对多次排序的结果有记忆功能,帮助我们节省大量的时间和空间成本,从上述案例我们似乎可以发现,稳定与否的关键在于一次排序过程中,数据的位置交换有没有跨越值相等的元素,如果没有跨越,那么结果一定是稳定的,否则是不稳定的。那么到底是不是这样的,我们来通过一些具体的算法来分析一下。

基本排序算法及其在MapReduce的应用
02-01
该文档为学习基本排序算法过程中的学习笔记,大部分内容从网络上其他渠道也能得到,仅用于记录备忘之用。冒泡、选择、插入三种作为基本的排序算法是必须要掌握的,而在...所谓算法稳定性即能够保证排序前两个相
排序算法的理解
weixin_73562326的博客
09-24 446
首先什么是排序,排序按照字面意义来理解,也就是排列顺序,排序算法其实就是将一串数据按照某种特定的方式进行排列。排序算法的输出是输入的一种排列或者重组, 排序算法的输出按照递增(或者递减)的顺序进行排列,排列结果为升序(或降序)序列。无论是升序还是降序,现在所说的都是升序排序了。 算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略机制,也就是说能够对一定规范的输入,在有限时间内获得所要求的输出。一个优秀的算法追求两个目标,1.花最少的时间完
排序算法总结
skiery的博客
09-07 432
@skiery 算法排序 排序的意义:将无序序列重新排列然后有序化。 算法稳定性:关键字相等的两个元素在排序后不改变两者的初始相对位置,则算法稳定,否则排序算法不稳定。但稳定性和排序性能无关。 1.直接插入排序 首先以一个元素为有序序列,然后将后面的元素依次插入到有序的序列中合适位置直到所有元素都插入有序序列。 ...
解读十大经典排序算法
qq_38311489的博客
05-20 235
原文出处:http://cmsblogs.com 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1、平方阶 (O(n2)) 排序 各类简单排序:直接...
8种常用排序算法稳定性分析
小小默:进无止境
02-09 1万+
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法 冒泡排序、插入排序、归并排序和基数排序都是稳定的排序算法。 【1】为什么要区分排序算法稳定性排序算法稳定性通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。 再简单具体一点,如果A i == A j,Ai 原来在 Aj 位置前,排序后 Ai仍然是在 Aj 位置前。 下面我们分析一下稳定性的......
排序算法的总结 排序算法及其稳定性
goodgoodstudy___的博客
09-24 2610
1.快速排序 2.归并排序 3.插入排序 4.冒泡排序 5.选择排序
stablesort:Coq中的稳定排序算法及其稳定性证明
03-25
Coq中的稳定排序算法 该库提供了一种通用的方法来证明排序算法稳定性。 使用规范结构( StableSort.interface )重载了此库中提供的稳定性引理,并且在该接口中,稳定的排序函数通过表示排序和征服结构的参数公理...
常用数据结构及其算法的Java实现
11-12
八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序在内的八种排序算法,同时对各种算法的基本特征做出了详细分析: - 算法基本思想 - 算法的...
各种排序算法
01-08
快速排序 归并排序 希尔排序掌握常用的排序方法,并掌握用高级语言实现排序算法的方法; 深刻理解排序的定义和各种排序...了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的时间复杂性和稳定性分析方法。
排序:插入排序,选择排序,基数排序,冒泡排序
12-06
插入排序,选择排序,基数排序,冒泡排序的C++实现
排序算法稳定性
xjm1018的博客
03-14 9007
排序算法稳定性:意思就是说大小相同的两个值在排序之前和排序之后的先后顺序不变,这就是稳定的。 (1)冒泡排序:原理是通过相邻的两个元素作比较,把小的向前移或者把大的向后移,移动就是交换这两个元素。如果说碰到相等的两个元素是不会做处理的。所以是稳定的排序。 (2)选择排序:原理是从第一个元素开始,在之后的所有元素中选择一个最小的交换过来。如果说原序列中第一个元素和第二个元素相等,第三个元素...
常见排序算法稳定性分析和结论
阳光岛主
05-31 1万+
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。       首先,排序算法稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在
排序方法稳定性总结
醉卧考场君莫笑
11-16 4316
文章目录前言一、排序算法稳定性是什么?二、各个算法解析1.选择排序2.冒泡排序3.插入排序4. 归并排序5.快速排序6.堆排序7.桶排序思想的算法总结 前言 这次将介绍各种排序算法稳定性和一些小结论 一、排序算法稳定性是什么? 它说的是,当一个排序算法对一个数组排序的时候,两个相同的数,在排序后相对位置有没有发生变化。没有则稳定 二、各个算法解析 1.选择排序 选择排序算法是不稳定的,它是先遍历一次数组,找到一个最小值,和已排好序的边界后一个元素交换。这个交换的步骤就让选择排序变得不稳定。如果交换过.
常用排序算法稳定性
weixin_43743711的博客
04-11 3682
前言: 什么是稳定性? 定义:排序前后两个相等的数相对位置不变,则算法稳定。 总述: 各排序算法稳定性: 堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法; 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。 一、冒泡排序 小的元素往前调或者把大的元素往后调; 比较是相邻的两个元素,那么交换也发生在这两个元素之间; 很显然是稳定性排序算法。 二、选择排序 每个位置选择当前元素最小的; 在一趟选择中,如果当前元素比一个元素小,而该小的元素
排序算法稳定性意义
天行健,君子以自强不息
04-29 2846
排序算法稳定性 对于一般的算法,我们一般只需要分析它的时间复杂度和空间复杂度,但是对于排序算法来说,我们还有一个非常重要的分析指标,那就是排序算法稳定性稳定性是指,在需要进行排序操作的数据中,如果存在值相等的元素,在排序前后,相等元素之间的排列顺序不发生改变。 大家可能会想,反正都是相等的元素,通过排序后谁在前谁在后有什么不一样呢?对排序算法进行稳定性分析又有什么实际意义呢?其实,在学习...
排序算法稳定性 + 总结 + 常见的坑
明朗晨光的专栏
06-08 1377
排序算法的总结及常见的坑
排序算法时间复杂度、空间复杂度、稳定性比较
热门推荐
小黑皮的技术博客
07-30 11万+
排序算法分类排序算法比较表格填空 排序算法 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定 冒泡排序 :————-: :—–: :—–: :—–: 选择排序 :————-: :—–: :—–: :—–: 直接插入排序 :————-: :—–: :—–: :—–: 归并排序 :————-: :—–: :
八大排序算法稳定性及时间复杂度
algsup
08-26 4万+
前言: 首先清楚何谓稳定性? 通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在Aj位置前,排序后Ai还是要在Aj位置前。 判断方法: 对于不稳定的排序算法,只要举出一个实例,即可说明它的不稳定性;而对于稳定的排序算法,必>须对算法进行分析从而得到稳定的特性。需要注意的是,排序算法是否为稳定的...
各个排序算法的时间复杂度、稳定性、快排的原理以及图解
05-30 1万+
一、整体介绍 常见的数据结构算法如下图所示: 常见数据结构算法的时间复杂度、空间复杂度、稳定性介绍如下图所示: 二、分部介绍: (1)直接插入排序: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果新元素小于已排序元素tmp<array[ j ],将该元素移到下一位置array[ j+1]=array[ j ] 重复步骤3 j - -,直到找到已排序的元素小于或者等于新元素的位置 array[ j ]<=tmp.
python 排序算法及其时间复杂度
最新发布
09-01
- *2* [python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序](https://blog.csdn.net/weixin_39852276/article/details/110335432)[target="_blank" data-report-click={"spm":"1018...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 常用的转义字符 5953
  • 平均查找长度(Average Search Length) 3867
  • CRC 检验 2051
  • 用正则表达式进行搜索(REGEXP) 1811
  • 斐波那契查找 1500

分类专栏

  • Android
  • VIM编辑器 2篇
  • Andr
  • 算法 1篇
  • 计算机网络 4篇
  • JavaIO 1篇
  • Git 3篇
  • 工具 2篇
  • 网络
  • 数据结构 12篇
  • 查找 5篇
  • 排序 12篇
  • Java 2篇
  • 操作系统 3篇
  • WebSocket
  • JSON必知必会 1篇
  • 第一本Docker书 5篇
  • Linux命令行大全 25篇
  • 转载 2篇
  • JavaScript 1篇
  • 快捷键 3篇
  • MySQL必知必会 22篇
  • Android Studio
  • Linux就该这么学 3篇
  • Picture

最新评论

  • 斐波那契查找

    WHORU0: [code=java] while (array.length > F[k] - 1) { k++; } [/code] 应该是array.length > F[k]吧

  • MySQL必知必会样例表说明

    show78789: 感谢

  • File 类基本使用

    大家一起学编程(python): 确认过眼神,是值得学习的人

  • IDEA快捷键

    ctotalk: thanks very good

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • VIM 实用技巧
  • 409. 最长回文串
  • File 类基本使用
2021年6篇
2020年105篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源重生1979金字塔理财网通信行业公司起名字reflector姓氏罗的起名起名哪位的大师好热火vs马刺直播重生之风起超级搜查令生肖鼠 起名动物起名字可爱武汉富士康地址365日霸道总裁爱上我老公姓唐给宝宝起名生鲜店起人名大全姓氏贾男孩起名姓韩男孩生辰八字起名五行属水取名起名大全诗经二首潘氏女儿起名女孩起名免费网牡丹江苗氏起名馆卖油翁原文及翻译凤凰资讯台直播海鲜店起名大全艳情录杭州公司起名尧起名字好吗八哥影院高校龙中龙01淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化