首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X)
[单选题]
有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),新序列(F,H,C,D,A,M,P,S,R,Y,Q,X)是下列( )排序算法一趟扫描结果。
堆排序
快速排序
希尔排序
冒泡排序
查看正确选项
添加笔记
求解答(30)
邀请回答
收藏(482)
分享
27个回答
添加回答
2
捂耳听风
每次都是按照第一个来进行排序,其实也完全可以按照其中的某一个值作为关键之来进行排序。
本题以中间值M为基准,但是比较过程中不是与M交换,而是从前往后看找比M大的,从后向前看找比M小的,遇到一组则前后交换这一组的值,直到寻找位置重合。
编辑于 2018-01-30 10:28:17
回复(0)
1
牛客905435118号
快速排序有多种实现方法。 第一种:选择第一个元素作为piovt基准点,然后用“挖坑法”,进行覆盖。 第二种:选择中间元素作为pivot基准点,先从尾部开始找第一个小于pivot的点,再从头部找第一个大于pivot的点,进行交换。
发表于 2021-03-21 18:04:20
回复(0)
1
牛客515776号
心中每次默念一遍字母表顺序!
发表于 2016-10-21 22:31:44
回复(1)
45
Me怤畢炜eM
这道题让我明白 主元pivot 真不一定是 第一个元素
发表于 2016-08-06 14:52:21
回复(7)
10
尼见
一趟快速排序意思是:寻找一个支点,将该序列位置整个调整一边,可以看到M是支撑点,左边都是比M小的,右边都是比M大的,
注意:支点不一定是左边第一个数,可以任意选的。
发表于 2016-06-08 13:18:41
回复(5)
8
935039168
以M为支点的快速排序,从X开始比较。(排列字母顺序,换成数字看得明晰一些。)
发表于 2016-03-01 20:33:54
回复(0)
3
我是超越迷妹了😘
快速排序的枢轴pivotkey通常是取第一个记录,但是也可以任取一个记录。。。。。。
发表于 2017-09-27 16:20:48
回复(0)
2
云云云一飞冲天
这题可以用排除法做:
正确答案: B
冒泡排序一趟之后最值肯定在最后了,所以排除冒泡排序;
希尔排序需要先确定增量,观察可以看出Q和F的位置是互换了,说明至少Q和F都在同一个增量中,Q和F中间隔了10个,并且这个增量中不能存在比F还小的值,所以1因为会引入A不能为增量,2因为会引入C不能为增量,3和4不整除,5因为会引入A不能作为增量,这样找不到一个这样的增量,所以不能;
快速排序的特点:关键节点前面的元素都比它小,后面的元素都比它大,M就是这样的点;
堆排序第一步应该是与最后一层的最右边的节点交换位置,然后找个被交换的F需要下沉,这样F就不能开头了,故排除;
到这里应该就能选了,但是我无意中看到了有人这样解(下面这个是别的题目下大佬的说法):
因为按照快排,最后结束条件是left==right,所以每一趟排序一定会有一个正确的数字占正确的坑位,3趟应该至少有3个数字在正确位置:
快速排序一趟确定1个或者2个点的最终位置,如果是第一次,确定1个;
第二次以后:
如果基点在最左边或者最右边确定1个点最终位置;
如果在中间,那么确定2个点的最终位置;
最后结束条件是left==right,所以每一趟排序一定会有一个正确的数字占正确的坑位,3趟应该至少有3个数字在正确位置;
按照这说法,确实只有一个R在应该存在的位置;
如有错误,还请各位大佬指正;
发表于 2022-08-17 01:35:25
回复(0)
1
若水/爆米花
B
发表于 2015-06-17 18:47:10
回复(1)
0
小小的鹏弟
从M开始左侧元素均小于M右侧均大于M,符合一趟快速排序基本条件(手写快排一样)
发表于 2022-11-20 21:28:51
回复(0)
0
AAS48
快排哨兵可以随便取。。。只不过一般是取第一个元素,坑阿
发表于 2021-12-22 22:05:46
回复(0)
0
yyyylem
求解:为啥希尔不行。。。
感觉也可啊~ 第一遍的间距就是Q、H的距离。
发表于 2020-05-13 23:54:02
回复(1)
0
淇神
贼烦这种用字母来排序的啦,数字他不香吗
发表于 2020-04-17 13:28:52
回复(0)
0
louis_ncu
以M为支点,进行双边快速排序
发表于 2020-04-12 14:00:56
回复(0)
0
19961226
为啥我的快排是:D H C F P A M Q R S Y X
发表于 2020-03-28 10:12:53
回复(0)
0
乐壹波呀
我以前都是把第一个元素作为基准,但是看评论的都是说M,是怎么选择M为基准的?随机选一个可以吧》
发表于 2020-03-12 17:27:20
回复(0)
0
百度_zopen
可以将M或者P作为支撑点
发表于 2019-05-06 15:14:40
回复(0)
0
id_9527
习惯性的用第一个元素当做基数,然后。。。
发表于 2018-08-22 15:39:13
回复(0)
0
疾风剑豪~亚索
M推出的竟然不是答案
发表于 2018-04-22 21:06:48
回复(0)
0
dcjer
呵呵哒,不按套路出牌。枢轴选的M
发表于 2018-04-03 20:32:03
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
人人网
排序
来自:
人人网2015研发笔试卷D
上传者:
牛客499538号
难度:
27条回答
482收藏
17057浏览
热门推荐
相关试题
用 js、html、css实现一...
人人网
2011
Javascript
前端工程师
评论
(6)
来自
人人网2011前端工程师笔试卷
实现 input 输入框的自动匹配。
人人网
2011
Javascript
前端工程师
评论
(11)
来自
人人网2011前端工程师笔试卷
用代码实现在页面的固定区域内实现图...
人人网
2011
Javascript
前端工程师
评论
(17)
来自
人人网2011前端工程师笔试卷
删除字符串中指定的字符,如字符串”...
人人网
字符串
评论
(10)
来自
人人网2015研发笔试卷D
定义网络传输数据包为以下结构体,其...
人人网
评论
(26)
来自
人人网2015研发笔试卷D
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题