首页 > 试题广场 >

用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为9

[单选题]

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

  • 2
  • 3
  • 4
  • 5
希尔排序:设待排序元素序列由n个,首先取gap<n作为间隔,将全部元素分为gap个子序列,所有距离为gap的元素放在同一个子序列中,在每个子序列进行直接插排。
从定义可知,在进行第一趟希尔排序后,由于执行了直接插排,每个子序列都是有序的。
根据题目,反过来,找间隔gap,使得每个子序列{a[i],a[i+gap],a[i+2*gap]....}有序,其中i~[0,n-1]。
如图,相同颜色的属于同一个子序列,增序。因此题目中第一趟gap=3.
关于疑问:

可以看出该公式相当于a1=a0/3+1,是基于本次increment计算下一次的increment。而第一次的increment相当于a0,是给定的,不是计算得来的。
发表于 2017-04-06 17:41:12 回复(0)
死在对间隔(增量)的理解上...
发表于 2017-05-05 11:36:35 回复(0)
这题出的有毛病,可能,可能的多了,3是最佳
发表于 2019-11-06 15:40:51 回复(0)
既然是排完一次序之后的第一个数是9,只要找到9后面第一个比9大的数,两个数之间的增量就有可能是排序的增量
发表于 2018-04-08 13:00:56 回复(0)
3 6 7 8均可能
发表于 2017-08-02 18:20:01 回复(0)
子序列之间有n个数,那么增量就是n-1;
发表于 2017-07-26 11:27:37 回复(2)
每三个三个一组,每隔两个化为一组,增量就叫做2.。记住了
发表于 2017-04-13 15:53:51 回复(0)
为什么不是4呢
发表于 2017-03-24 10:34:13 回复(0)
很简单,看算法的定义就好
发表于 2017-01-24 03:22:54 回复(3)