实现在最坏的情况下需要进行O("n")的比较和交换。 V. Pratt的书对算法进行了少量修改，可以使得性能提升至O("n" log "n")。这比最好的比较算法的O("n" log "n")要差一些。希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能。这样可以让一个元素可以一次性地朝最终位置前进一大步。然后算法再取越来越小的步长进行排序，算法的最后一步就是普通的插入排序，但是到了这步，需排序的数据几乎是已排好的了（此时插入排序较快）。假设有一个很小的数据在一个已按升序排好序的数组的末端。