谢尔排序法(Shell’s Sort)又称缩小增量排序法。他在1959年由谢尔(D.L.Shell)提出的。当时主流的排序算法时间复杂度都是 O ( n 2 ) O(n^2) O(n2)。谢尔排序是有望突破这个复杂度的一批算法之一。题外话,对比现在如此多O(nlogn)时间复杂度的排序算法,可见当时人们对排序算法的认知匮乏。你如果能穿越回60年前,绝对是一个了不起的人… 谢尔排序理解起来还是有些
谢尔排序和插入排序还是有类似的,可以说插入排序是谢尔排序中必经的一步,或者说是特殊的一种情况。因为谢尔排序需要使用一个增量序列 hk h_k, k=1,2,3,...,t k=1,2,3,...,t,其中 h1=1 h_1=1。然后会根据不同的 hk h_k,进行排序,每次排序的方式和插入排序相似,但是间隔为 hk h_k,因此当 k=1 k=1的时候,便是插入排序了。对谢尔排序,需要从 ht