【面试现场】为什么要分稳定排序和非稳定排序?
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。
今天他去了一家互联网小巨头公司面试了。
没想到面试并不像想象中的顺利。
【遇见吕老师】
【面试现场】
小史:原始数据,a2和a4的位置都是3。对于稳定排序来说,排序后的序列,a2一定还是在a4前面。但是对于非稳定排序来说,就不一定了,可能排完序之后,a4反而在a2的前面了。
题目:既然最后都是有序序列,为什么还要分稳定和非稳定的排序呢?
半分钟过去了。
【请教大神】
吕老师:笔试主要问是什么,而面试主要问为什么。
【吕老师的课】
吕老师一上课就把问题抛了出来。
话音刚落,蛋哥就站了起来。
蛋哥:咱们每次考试完成后,都会按照分数进行排序。分高的自然就是第一名。分数相同的同学怎么办呢?那就是按照上次的分数来分高低。上次分高的排在前面。
蛋哥:这个时候就应该用稳定排序,在上次排好序的序列上,再针对这次的分数进行排序。稳定排序的结果能保证这次相同分数的人,上次分高的在前面。
蛋哥:再比如我们班的同学,已经按照学号排好序了。现在要按照身高排序。如果是稳定排序排好之后,身高相同的同学,还是按照学号顺序的。
吕老师:没错,其实就是有两个排序关键字的时候,稳定排序可以让第一个关键字排序的结果服务于第二个关键字排序中数值相等的那些数。
小史听完后,觉得很惭愧,其实这些场景自己也遇到过,早该想到的。
【课后】
课后小史又找到吕老师。
吕老师:你看的东西很多,是你学到了很多知识。但是这些知识之间的关联,需要你进行深入思考才能得到的。找到知识之间的联系,找到知识和实际场景之间的联系,多想想为什么,才能做到融会贯通。
推荐阅读(点击即可跳转阅读)
1.
2.
3.
4.
5.
【面试现场】为什么要分稳定排序和非稳定排序?相关推荐
- 面趣 | 为什么要分稳定排序和非稳定排序?
作者 channingbreeze 如需转载,请联系原作者. 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 今天他去了一家互联网小巨头 ...
- JS排序算法之快速排序(原地排序和非原地排序)
描述 选中数组中的一个数当标识,让这个数组中左边的数都比这个数小,右边的元素都比这个元素大. 充分利用比较行为. 先把大数组排好序,再排小数组 正好与 归并排序 相反 代码 非原地排序 参考 阮一峰快 ...
- 排序算法之计数排序、基数排序和桶排序
转自:http://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html 计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是 ...
- 一步一步写算法(之非递归排序)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大.作为一个100万的数据,如果使用 ...
- mysql 分表 条件查询,面试过关斩将:分库分表-sharding-jdbc分页,排序,条件查询优化...
之前讲了利用sharding-jdbc 3.1进行分表的情况,也讲了利用一致性hash去做分表的高可用.今天讲下分表后的分页,排序,条件查询优化. 其实本身sharding-jdbc是提供了分页功能的 ...
- 【BAT面试现场】如何判断一个数是否在40亿个整数中?
作者 channingbreeze 如需转载,请联系原作者授权. 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT. 今天他就去BAT中的一家面试了. ...
- 「BAT面试现场」如何判断一个数是否在40亿个整数中?
https://www.toutiao.com/a6699639753467232771/ 作者:channingbreeze 来自:公众号互联网侦察 小史是一个应届生,虽然学的是电子专业,但是自己业 ...
- A公司面试现场——无领导小组讨论进行时~
故事背景 A公司招聘面试现场,无领导小组讨论形式面试进行时-- 时间: 周五下午两点钟 地点: A公司大楼八楼面试厅 人物设定: 面试官三人,求职者五人. 面试官三人 A1: A1是主面试官,性格沉稳 ...
- 【面试现场】如何判断一个数是否在40亿个整数中?
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT. 今天他就去BAT中的一家面试了. 简单的自我介绍后,面试官给了小史一个问题. [面试现场] 题目: ...
最新文章
- linux清屏命令_linux下的7个常用命令的基本使用
- python办公模块_Python 办公自动化教程
- 【PHP 每日函数】第 03 周期
- MQTT在Windows下搭建MQTT服务器
- 这几个juniper巡检命令超实用
- 天翼云从业认证(4.11)天翼云物流行业解决方案
- 《Unity虚拟现实开发实战》——第1章,第1.8节小结
- 求矩形中心点坐标编程c语言,c语言编程序求矩形面积 我是新手,很多不懂,初学...
- Django前后端增删改查
- JavaScript高级特征之面向对象笔记
- 企业实战(Jenkins+GitLab+SonarQube)_02_Jenkins运行
- 6-10 阶乘计算升级版(20 分)
- kali linux 2017 中文,Kali Linux 2017.3 发布,带来已升级的内核和新工具
- 杰理之ANC降噪的硬件要求和物料选型【篇】
- 相关系数excel_如何用Excel计算投资组合的有效前沿?
- 现代计算机的工作原理是什么和什么,计算机的工作原理是什么
- 请设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行输出两个实数;(3)一行输出三个实数。实数用%6.2f格式输出。
- 【51单片机STC89C52】LCD1602液晶屏的使用
- 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(实现篇)
- java编程试算平衡_发生额试算平衡要求本期每个账户借方发生额合计都与贷方发生额合计相等()_学小易找答案...
热门文章
- 【Arduino+ESP32专题】PlatformIO编程ESP32 Guru Meditation Error错误溯源
- 历史微博,阅读量查看,微博热搜查看,批量监控微博刷量...盘点西瓜微数新功能!
- AI与全民开发:挑战和机会并存
- python写自动脚本下载_如何使用python写自动化脚本?
- 超外差接收机原理图讲解(一)--射频部分
- 接收机的常用结构简介
- 英雄 (HERO) 359 练字钢笔
- Win10+VS2019+Nvidia_Geforce_GTX_1080Ti编译YOLOv4
- SQL Server 字段提取拼音首字母
- 遗传算法及其改进算法