首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
下列排序算法中,哪个是稳定的排序算法?
[单选题]
下列排序算法中,哪个是稳定的排序算法?
选择排序
快速排序
归并排序
希尔排序
添加笔记
邀请回答
收藏(66)
分享
12个回答
添加回答
1
推荐
流918
C,选择排序在调整树的过程中改变节点的顺序导致不稳定,快排一个指针从前之后,一个从后至前,从后往前可能将多个小于基准数据的数原本先进入数组却放在了前面,归并算法采用的归并方式稳定的话就可以保证其稳定性,希尔排序是因为增量对不同组的顺序形成一种隔离,每个组内稳定,多个组在一起就不稳定。
编辑于 2019-04-11 14:15:41
回复(0)
13
白驹之过隙
选C。
归并排序稳定性:每次都是从左半部份开始归并,当左半部份与右半部份的关键字相等时,左半部份优先,
所以归并排序的算法是稳定的
。
选择排序的思想
:从n个元素选出最大(最小)的元素,把它调到序列的首端(尾端),再从剩下的n-1个元素继续选出
最大(最小)的元素...反复操作,直到只剩1个元素。
由于选择排序的交换是跳跃式进行的,所以不稳定
。
A错误
。
快速排序的思想:
找一个记录作为关键字枢纽,小于枢纽的记录移到该关键字枢纽之前,大于枢纽的移到关键字之后,然后对分割的两个子序列进行递归操作,也属于跳跃式进行,所以不稳定。
B错误
。
希尔排序
:将待排序的数列分成若干个子序列,分别对子序列进行插入排序,逻辑子序列的交换跨度比较大,跳跃式的进行,所以不稳定。
D错误。
---------------------------------------------------------------------------------------------------------------------------
编辑于 2019-04-10 18:42:44
回复(0)
3
向宁冋桌
发表于 2019-04-11 10:23:13
回复(0)
1
ynlybjl
选C,因为A,B,D都是基于交换的排序,而它们三个在交换时并不是相邻位置元素的交换(冒泡稳定,因为它是基于相邻位置元素的交换),那么在交换时就可能改变两个相等元素的相对位置。
发表于 2019-04-11 10:40:24
回复(0)
1
灯火阑珊13
C
发表于 2019-04-10 15:36:12
回复(0)
3
村长王兰花
你的情绪
不稳定
,
快些选
一
堆
好友来聊天吧
快:快速排序 些:希尔排序
选:简单选择排序
堆:堆排序
发表于 2019-09-10 20:37:08
回复(0)
2
clear_rain
选C
堆选快希不稳定,堆选归基与初始队列无关
编辑于 2019-04-10 18:23:28
回复(0)
0
_void_
快排,希尔,选择,堆 不稳定
发表于 2020-08-20 13:50:37
回复(0)
0
你的offer对我打了烊
不稳定的排序,快 些(希尔)选 堆
发表于 2020-06-12 11:21:05
回复(0)
0
yasuoman
希尔选择快速不稳。其中选择包括简单选择排序和堆排序。
发表于 2020-05-13 11:13:26
回复(0)
0
PPPeng
选C。
归并排序稳定性:每次都是从左半部份开始归并,当左半部份与右半部份的关键字相等时,左半部份优先,
所以归并排序的算法是稳定的
。
选择排序的思想
:从n个元素选出最大(最小)的元素,把它调到序列的首端(尾端),再从剩下的n-1个元素继续选出
最大(最小)的元素...反复操作,直到只剩1个元素。
由于选择排序的交换是跳跃式进行的,所以不稳定
。
A错误
。
快速排序的思想:
找一个记录作为关键字枢纽,小于枢纽的记录移到该关键字枢纽之前,大于枢纽的移到关键字之后,然后对分割的两个子序列进行递归操作,也属于跳跃式进行,所以不稳定。
B错误
。
希尔排序
:将待排序的数列分成若干个子序列,分别对子序列进行插入排序,逻辑子序列的交换跨度比较大,跳跃式的进行,所以不稳定。
D错误。
发表于 2019-05-14 16:20:56
回复(0)
0
牛客668593号
C,归并排序是稳定排序。稳定就是不会发生,已经归序的反而跑到前面,比方说 2(a),2(b).一次排序操作之后2(b),2(a).这就不是稳定的
发表于 2018-10-29 17:41:07
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
排序
上传者:
城市里的养猫者
难度:
12条回答
66收藏
7128浏览
热门推荐
相关试题
在下列表述中,错误的是()
字符串
树
排序
评论
(43)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
计算机系统中用于管理硬件和软件资源...
编程基础
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
说出3个获取用户需求的方法并简述其...
用户研究
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题