首页 > 试题广场 >

下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置

[单选题]
下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是()
  • 堆排序
  • 冒泡排序
  • 直接插入排序
  • 快速排序
看成了必能 发现答案多个
发表于 2018-01-03 21:02:09 回复(0)
比如21,25,49,16排序.[]内表示相应一趟结束后排列好的序列
初始序列 [21] 25 49 16
第一趟结束后 [21 25] 49 16
第二趟结束后 [21 25 49] 16 此时49排在第三位,但不是它最终要排的位置.
第三趟结束后 [21 25 16 49] 49排在第四位,这是它原本应排的位置.由此可知选择A
发表于 2017-08-07 10:01:03 回复(0)
网上找的答案,觉得挺有用的复制过来。。
简单选择排序,能够取出当前无序序列中最(小or大)值与第一位置的元素互换位置。
堆排序每趟总能选出一个最值位于根节点。
冒泡排序总是两两比较选出一个最值位于数组前面。
快速排序选出的枢轴在一趟排序中就位于了它最终的位置
插入排序(直接、二分)不一定会位于最终的位置,因为不确定***入的元素对于前面的元素是否产生影响。

希尔排序(本质也是插入排序)只在子序列中直接插入排序。所以不能确定。
二路归并排序除非在缓存区一次放入所有的序列(这样得不偿失),否则不能确定最终位置。
所以只有 简单选择排序快速排序、冒泡排序、堆排序
发表于 2019-05-21 08:25:40 回复(0)
直接插入排序,当待排序列为逆序时,每趟都插入序列头部,故每次元素都不在其最终位置。

发表于 2017-08-23 00:13:59 回复(0)
C 希尔,归并,直接插入都有可能某一趟结束后未必能选出一个元素放在其最终位置上
发表于 2020-02-13 17:05:26 回复(0)
直接插入,是不看其位置的,所以就是C的不确定性更高
发表于 2018-11-01 16:46:50 回复(0)
求解答 堆排序 不也不确定吗
发表于 2018-10-11 16:20:51 回复(1)