希尔排序(缩小增量排序):
1959年Shell发明,第⼀个突破O(n^2)的排序算法,是简单插⼊排序的改进版。
基本思想:设待排序元素序列有n个元素,首先取一个整数【temp=n/2】作为间隔将全部元素分为temp个子序列,所有距离为temp的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩小间隔temp,重复上述子序列划分和排序工作。直到最后取temp=1,将所有元素放在同一个子序列中排序为止。
下面直接图示理解:
给出原序列:
注意:有两个7,对第一个加了*标注,排序后位置发生改变。