希尔排序是直接排序的优化版本。
希尔排序是将庞大的数据进行分组,通过定义一个gap值,将数组里面间隔为这个gap值的元素分在一个小组里面,把每个小组通过插入排序的方式分别排成有序
在一组组排成有序的这个过程中,原来无序的数据会渐渐地变成有序。
遍历完数组后再取新的gap值重新划分小组遍历数组,(预排序)直到最后这个gap值变成1就直接用插入排序。
希尔排序可以分为两个部分:预排序和直接插入排序
通过预排序可以将小数据放在前面,大数据放在后面,这样减少了最后插入排序的次数
这个过程比直接插入排序的效率更高。因为直接插入排序处理的数据越无序,它的时间复杂度就越高。