首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
下列排序算法中,某一趟排序结束后未必能选出一个元素放在棋最终
[单选题]
下列排序算法中,某一趟排序结束后未必能选出一个元素放在棋最终位置上的是()
堆排序
冒泡排序
直接插入排序
快速排序
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(159)
分享
6个回答
添加回答
2
白驹之过隙
选C。
直接插入排序
的过程:先将序列第一个记录
暂时
作为有序子序列,从第二个开始逐个进行插入,直至整个序列有序。一趟排序将elem[i]插入到已排好序elem[0...i-1]中各元素做比较后的
任何对应位置
,所以
未必能选出一个元素放在其最终位置上
。
堆排序
是选择排序的改进,堆具有
完全二叉树
的性质,每个节点小于或等于左右孩子的称为
小根堆
,每个节点大于或等于左右孩子称为
大根堆
。排序过程:将待排序数列构成一个堆,将最大(最小)者移走,将剩余的继续构成堆,以此类推所以某趟排序能确定一个最大或最小元素最终位置。
冒泡排序和快速排序
属于交换排序的两种方法。
冒泡排序
是
两两比较相邻元素
,如果反序则交换位置,一趟排序后
最大(最小)会最终确定在最后一个位置上
。
快速排序
是通过选定一个比较的基准轴值,前一部分记录小于或等于轴值,后一部分记录大于或等于轴值,然后分别对这两部分进行继续进行上述作递归操作确定位置。
发表于 2019-03-26 20:22:59
回复(0)
1
Lmf_1407
直接插入:把后面的元素插入前面的有序表
初始时,有序表长为1(第一个元素),然后把第二个元素插入前面的有序表,把第三个插入前面的有序表,把第四个插入前面的有序表....................如54321按从小到大排序
54321--->45321--->34521--->23451----->12345
发表于 2019-03-26 21:55:17
回复(0)
15
clear_rain
选C
【分析】
A堆排序
:最大堆和最小堆在一趟排序之后都能将对应的最大值/最小值放到根节点的位置,并从而将其进行处理,这个处理的顺序实际上就是按从大到小/从小到大处理,所以堆排
能将元
素
放在最终位置
。
B冒泡排序
:又称起泡排序,两两相比,每趟都能将未排序部分的最大/最小值冒到最后或者是最前,所以冒泡也
能
将元
素
放在最终位置
。
C直接插入排序
:核心是一张有序表和一张无序表,一趟的本质是将一个无序表中的元素按照大小顺序放到有序表中,而这个位置会随着下一个无序表元素的插入而有可能发生变化,所以
不是最终位置
。例如:从小到大排序3 2 1 ,第一趟 : 2 3 1, 第二趟:1 2 3。
D快速排序
:快排的本质就是以基准数为分界线,一侧的元素都比基准数小,另一侧的元素都比基准数大,所以每一趟基准数所放的位置就
是最终位置
。
编辑于 2021-10-01 17:12:27
回复(0)
2
傻不拉几的小傻瓜
堆排序每趟结束都能将一个最值放在根节点
冒泡排序进行两两比较,每趟选出最大值或最小值
快速排序一趟可以选出比关键值大的和比关键值小的,从而确定位置
直接插入排序插入的时候不能确定一个元素的最终位置
发表于 2019-03-26 15:27:25
回复(0)
1
gzhjic
快速排序如果选中的基准数是最大值或最小值,一趟排序后位置不变
好像也符合答案要求?
发表于 2019-04-01 10:59:19
回复(0)
0
黑闪⚡
C和D都不是吧,哪家快速排序排序一趟在最终位置不变了?
发表于 2020-05-19 15:18:21
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
排序
上传者:
阿奻_
难度:
6条回答
159收藏
4640浏览
热门推荐
相关试题
明明的随机数
数组
评论
(3692)
来自
华为研发工程师编程题
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题