提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
- 希尔排序定义
- 希尔排序算法分析
- 希尔排序程序代码
- 希尔排序练习题
一、希尔排序
1.定义:先将待排序表分为若干个相同长度的子表(最后一个可不计),分别进行直接插入排序,当基本有序时,再对整体做一次直接插入排序,步骤:
(1)取一个步长d1 ,分为d1组,所有距离为d1倍数的放在一组
(2)各组中进行插入排序
(3)然后取步长d2,重复上述,直到取到步长为1,即所有记录已放在同一组中,再进行直接插入排序
(4)一般的,取d1=n/2 ,di+1=di/2向下取整,并且最后一个为1
二、希尔排序动态图
三、希尔排序程序代码
void ShellInsert