最近做了一道面试题是关于希尔算法的,重新又把希尔算法复习了一遍!!!
题目是这样的 {55,26,33,80,70,90,6,30,40,20} 第一轮排序结果是多少?
第一步:增量值=10/2=5;

就是分为 [ 55 90 ] , [ 26 6 ] , [ 33 30 ] , [ 80 40 ] , [ 70 20 ] 这五个组,然后进行直接排序,就是把没个组里的小的放到前面得到
[ 55 90] , [ 6 26] , [ 30 33 ] , [ 40 80 ] , [ 20 70 ]

第二步:增量值=5/2=2
就是把它再分为两个组 [ 55 30 20 26 80 ] 和 [ 6 40 90 33 70 ]

直接排序后得到 [ 20 26 30 55 80 ] 和 [ 6 33 40 70 90 ]

第三步:增量值=2/2=1
分为一个组 [ 20 6 26 33 30 40 55 70 80 90 ] 进行直接排序得到 [ 6 20 26 30 33 40 55 70 80 90 ]

这就是希尔排序最后的结果!!!
但是这道题问的是增量值为5的时候也就是第一次排序结果为 55 6 30 40 20 90 26 33 80 70
本文介绍了希尔排序的原理及步骤,通过一个具体的例子展示希尔排序的过程,包括增量为5时的第一轮排序结果。
6039

被折叠的 条评论
为什么被折叠?



