复杂度为O("n")的排序（冒泡排序或插入排序），可能会进行"n"次的比较和交换才能将该数据移至正确位置。而希尔排序会用较大的步长移动数据，所以小数据只需进行少数比较和交换即可到正确位置。一个更好理解的希尔排序实现：将数组列在一个表中并对列排序（用插入排序）。重复这过程，不过每次用更长的zh-hans:列; zh-hant:行;来进行。最后整个表就只有一zh-hans:列; zh-hant:行;了。将数组转换至表是为了更好地理解这算法，算法本身仅仅对原数组进行排序（通过增加索引的步长，例