希尔排序是插入排序的改良。
网上学习过程中见到对希尔排序的文字描述五花八门,使我陷入了一个误区:
“它是把一组无序数列均分成几段,之后每段再用插入排序。”
只看文字描述,不看案例演示,我还真这么认为的↑。
正确的理解是这样:
他不是一次分成几段的规划和进行一系列的插入排序操作就能完成的。
1.首先确定增量(增量要自己规划),
(PS接下来的思路是:增量要递减(可以非连续递减),依据这个增量变化,要排几轮?。)
2.每次只比较排序起始的数字与增量位置的数字,把它们插入排序。
3.减小增量,再排(步骤2)。
4.排完为止
由于过程中,增量逐渐减小,希尔排序也叫“缩小增量排序”。若文字看不懂,特附上拨云见日,茅塞顿开的视频讲解,加油。