希尔(shell)排序
一.简介
希尔排序(Shell Sort)是插入排序的一种算法,是对直接插入排序的一个优化,也称缩小增量排序。
直接插入排序的思想是:构建一个有序的序列,把新的数字插入到有序序列当中。直接插入排序到问题在于:每次插入都会移动大量空间,造成时间复杂度过大。直接插入排序到时间复杂度为O(n^2)。
希尔排序是非稳定排序算法。
shell排序基于直接插入排序改进:把整个序列分割为多个部分进行插入排序,然后再进行子序列合起来,再进行直接插入排序;这样,减少移动空间次数。直接插入排序的平均时间复杂度O(n^1.3);最坏的时间复杂度为O(n