1、希尔排序介绍
希尔排序(shell sort),是在直接插入排序的改进上而来。
2、希尔排序演示
动画效果演示的动画仅进行了一次分组,第二趟排序便直接对整个序列进行排序了
3、希尔排序原理
先将待排序的元素分组,从初始表中每相隔距离d取一个元素,形如L [ i , i + d , i + 2 d , i + 3 d , . . . , i + k d ] ,首次可将n个元素划分成d 个组,每次分别对这些组进行直接插入排序(见下代码),当整个表中的元素已基本有序时,再对全体记录进行一次直接插入排序。
希尔排序每趟并不产生有序区,在最后一趟排序结束前,所有元素并不一定归位了,但是在希尔排序每趟完成后数据越来越接近有序。
for(int d = len/2; d>=0; d /= 2){
以d为增量,在子序列内进行直接插入排序;
当d =