首页 > 试题广场 >

一个数组元素为:[11,14,25,6,7,30,9,17,

[单选题]
一个数组元素为:[11,14,25,6,7,30,9,17,1],使⽤用希尔排序,以4作为初始增
量量,每次排序增量量减1,按照从⼩小到⼤大的顺序进⾏行行排序,第三次排序后的排列列为
  • 1,14,9,6,7,30,25,17,11
  • 1,7,9,6,14,11,25,17,30
  • 1,6,9,7,14,11,25,17,30
  • 1,6,11,7,14,9,17,25,30

希尔排序原理

希尔排序是插入排序的改进版,核心思想是:先让距离较远的元素有序,再逐步缩小间隔,最后进行一次完整的插入排序

为什么这样做?

  • 普通插入排序对"几乎有序"的数组效率很高
  • 希尔排序通过多次"粗调",让数组逐渐接近有序状态
  • 最后一次排序时,数组已经基本有序,效率大大提升

解题过程

初始数组:[11,14,25,6,7,30,9,17,1]

第一次排序(增量=4)

按间隔4分组,每组独立进行插入排序:

索引: 0   1   2   3   4   5   6   7   8
原始: 11  14  25  6   7   30  9   17  1

分组:
组1(间隔4): 11 → 7 → 1    排序后: 1,7,11
组2(间隔4): 14 → 30       排序后: 14,30
组3(间隔4): 25 → 9        排序后: 9,25
组4(间隔4): 6 → 17        排序后: 6,17

结果: [1, 14, 9, 6, 7, 30, 25, 17, 11]

第二次排序(增量=3)

当前: [1, 14, 9, 6, 7, 30, 25, 17, 11]

分组:
组1: 1 → 6 → 25     排序后: 1,6,25
组2: 14 → 7 → 17    排序后: 7,14,17
组3: 9 → 30 → 11    排序后: 9,11,30

结果: [1, 7, 9, 6, 14, 11, 25, 17, 30]

第三次排序(增量=2)

当前: [1, 7, 9, 6, 14, 11, 25, 17, 30]

分组:
组1(偶数位): 1 → 9 → 14 → 25 → 30   排序后: 1,9,14,25,30
组2(奇数位): 7 → 6 → 11 → 17       排序后: 6,7,11,17

结果: [1, 6, 9, 7, 14, 11, 25, 17, 30]

答案:C

关键要点

1. 分组方式:增量为n时,索引相差n的元素为一组
2. 组内排序:每组独立进行插入排序
3. 交错重组:排序后按原索引顺序重新组合
4. 逐步收敛:增量递减,最终增量为1时完成最终排序

发表于 2026-02-13 16:22:18 回复(0)