首页 > 试题广场 >

题目来源于王道论坛 用希尔排序方法对一个数据

[单选题]
题目来源于王道论坛

用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为9,1,4,13,7,8,20,23,15,则该趟排序采用的增量(间隔)可能是


  • 2
  • 3
  • 4
  • 5
推荐

解析:

首先,第二个元素为1,是整个序列中的最小元素,所以可知该希尔排序为从小到大排序。然后考虑增量问题,若增量为2,第1+2个元素4明显比第1个元素9要大,A排除;若增量为3,第ii+3i+6个元素都为有序序列(i=1,2,3),符合希尔排序的定义;若增量为4,第1个元素9比第1+4个元素7要大,C排除;若增量为5,第1个元素9比第1+5个元素8要大,D排除,选B

发表于 2018-06-16 11:38:41 回复(0)
只要找到9后面第一个比9大的数,两个数之间的增量就有可能是排序的增量
发表于 2018-12-06 16:25:02 回复(2)
希尔排序使用的增量:初始为9个元素时,增量为3,则,第一轮为               9   1    4
                                                                                                                       13  7    8
                                                                                                                       20 23 15。每一列进行比较,希尔排序底层一般使用插入排序对每一列进行排序。(从小到大则)小的放在每一列的上边。
补充:希尔排序底层一般使用插入排序对每一列进行排序,也很多资料认为希尔排序是插入排序的改进版
发表于 2022-02-01 10:34:36 回复(0)
既然是第一次排序的结果,首先要找的就是比第一个数字大的数字,比如比9大的第一个数字就是13,gap=3,然后依次验证所有数,ok
发表于 2022-09-13 01:10:55 回复(0)