面趣 | 为什么要分稳定排序和非稳定排序?
作者
channingbreeze
如需转载,请联系原作者。
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。
今天他去了一家互联网小巨头公司面试了。
没想到面试并不像想象中的顺利。
【遇见吕老师】
【面试现场】
小史:原始数据,a2和a4的位置都是3。对于稳定排序来说,排序后的序列,a2一定还是在a4前面。但是对于非稳定排序来说,就不一定了,可能排完序之后,a4反而在a2的前面了。
题目:既然最后都是有序序列,为什么还要分稳定和非稳定的排序呢?
半分钟过去了。
【请教大神】
吕老师:笔试主要问是什么,而面试主要问为什么。
【吕老师的课】
吕老师一上课就把问题抛了出来。
话音刚落,蛋哥就站了起来。
蛋哥:咱们每次考试完成后,都会按照分数进行排序。分高的自然就是第一名。分数相同的同学怎么办呢?那就是按照上次的分数来分高低。上次分高的排在前面。
蛋哥:这个时候就应该用稳定排序,在上次排好序的序列上,再针对这次的分数进行排序。稳定排序的结果能保证这次相同分数的人,上次分高的在前面。
蛋哥:再比如我们班的同学,已经按照学号排好序了。现在要按照身高排序。如果是稳定排序排好之后,身高相同的同学,还是按照学号顺序的。
吕老师:没错,其实就是有两个排序关键字的时候,稳定排序可以让第一个关键字排序的结果服务于第二个关键字排序中数值相等的那些数。
小史听完后,觉得很惭愧,其实这些场景自己也遇到过,早该想到的。
【课后】
课后小史又找到吕老师。
吕老师:你看的东西很多,是你学到了很多知识。但是这些知识之间的关联,需要你进行深入思考才能得到的。找到知识之间的联系,找到知识和实际场景之间的联系,多想想为什么,才能做到融会贯通。
推荐阅读
肥宅有理?大数据帮你找到不去健身房的原(jie)因(kou)
云漫圈 | 这就是未来的生活,你预测到了吗?
完
01
微 信 群
添加小编微信:tangguoyemeng,备注“进群”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
成为群成员,或拉人进群,
还有机会参与红包抽奖,获得免费赠书哦~~
02
征 稿
CSDN作为国内专业的云计算服务平台,目前提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、技术、平台、实践、云产业咨询等服务。CSDN 公众号也一直坚持「与千万技术人共成长」的理念,深度解读行业内热门技术与场景应用,致力于让所有开发者保持敏锐的技术嗅觉、对行业趋势与技术获得更广阔的认知。
文章题材
首先你需要关注我们的公众号“CSDN云计算”,这样你会更准确了解我们需要的文章风格;
侧重于云计算领域相关的文章,可以是技术、运维、趋势等方面的务实内容;
原创,要求文章有鲜明观点和看法。
投稿须知
稿费:根据原创性、实用性和时效性等方面进行审核,通过的文章会发布在本微信平台。一经采用,我们将支付作者酬劳。酬劳可能不多,这代表的是一个心意,更多是因为爱好,是有识之士抒发胸怀的一种方式;
字数要求:稿件字数以2K-8K为宜,少于2K或多于8K都会一定程度降低阅读愉悦感;
投稿邮箱:lijy@csdn.net。或者添加微信表明来意,微信号:tangguoyemeng。请备注投稿+姓名+公司职位。
如果咱们的合作稳定又愉快,还可以签订合同长期合作哦!
2018 AI开发者大会
◆
拒绝空谈,技术争鸣
◆
2018 AI开发者大会(AI NEXTCon)由中国IT社区CSDN与硅谷AI社区AICamp联合出品的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们只讲技术,拒绝空谈,诚挚邀请AI业内人士一起共铸人工智能新篇章!
2018 AI开发者大会首轮重磅嘉宾及深度议题现已火热出炉,扫码抢“鲜”看。国庆特惠,购票立享 5 折优惠!
面趣 | 为什么要分稳定排序和非稳定排序?相关推荐
- 【面试现场】为什么要分稳定排序和非稳定排序?
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 今天他去了一家互联网小巨头公司面试了. 没想到面试并不像想象中的顺利. [遇见吕老师] ...
- JS排序算法之快速排序(原地排序和非原地排序)
描述 选中数组中的一个数当标识,让这个数组中左边的数都比这个数小,右边的元素都比这个元素大. 充分利用比较行为. 先把大数组排好序,再排小数组 正好与 归并排序 相反 代码 非原地排序 参考 阮一峰快 ...
- 排序算法之计数排序、基数排序和桶排序
转自:http://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html 计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是 ...
- 一步一步写算法(之非递归排序)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大.作为一个100万的数据,如果使用 ...
- oracle 排序算法,ORACLE的ORDERBY非稳定的排序
提一个问题: oracle在order by 排序时,是稳定排序算法吗? 发现用一个type进行排序后,做分页查询,第一页的数据和第二页的数据有重复 怀疑是order by 时,两次排列的顺序不一致 ...
- [转载] 算法导论:分治法,python实现合并排序MERGE-SORT
参考链接: Python中的合并排序merge sort 1. 简单合并排序法实现 思想:两堆已排好的牌,牌面朝下,首先掀开最上面的两张,比较大小取出较小的牌,然后再掀开取出较小牌的那一堆最上面的牌和 ...
- java排序算法总结_排序算法总结及Java实现
1. 整体介绍 分类 排序大的分类可以分为两种,内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.主要需要理解的都是内排序算法: 内排序可以分为 ...
- 数据结构 排序【简单排序(冒泡、插入)、希尔排序、堆排序、排序方法的综合比较、2套 排序汇总代码】
目 录 第9章 排序(上) 9.1 简单排序(冒泡.插入) 1.前提 2.简单排序(冒泡排序) 3.简单排序(插入排序) 4.时间复杂度下界 9.2 希尔排序 9.3 堆排序 排序方法综合比较 排 ...
- 排序算法:桶排序、计数排序、基数排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...
最新文章
- android+5系统,Android2.3.5系统+华为UI
- javascript创建对象的三种方式
- 自定义最大高度的ViewGroup
- Halcon初学者知识 【13】如何在MFC中调用Halcon代码
- 【流量】一觉醒来发现CSDN博客访问量增加十倍!原来是这个原因
- 细胞转染的操作步骤及注意事项
- 牛客 - 二分(差分)
- 音视频技术开发周刊 87期
- 如何实现省市关联的下拉列表
- 帝国cms如何安装php模板,2020帝国cms模板安装教程详细介绍
- sql server 群集_SQL Server中的Microsoft群集
- uniapp不同页面跳转传递数据
- 055 集体照 (25 分)
- python的注释符号有哪些_python注释符号
- 猜数游戏,随机生成一个1~100的数进行猜测。
- angular2项目里使用 Spin(加载中)
- 国家及地区MySQL数据
- android-ultra-pull-to-refresh list,Android下拉刷新控件android-Ultra-Pull-To-Refresh 使用
- 腾讯云(云镜)主机入侵检测漏洞检测
- OmniPlan 3 破解 中文
热门文章
- 开设计算机应用基础这门学科意义,计算机应用基础与专业课程整合思考.doc
- 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!
- java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?
- 五月份哪里有有计算机考试,2021年5月全国计算机等级考试报名时间
- 程序员解决20年前的加密问题
- 关于机器学习,这里有一份权威入门指南
- windows 下的文件对比工具
- ef mysql 外键 一对一_MySQL 外键 一对一 一对多 多对多 复制
- python中的return和print的区别_python中return和print的区别(详细)
- sdut 数字三角形问题