数据结构——基于C++语言(微课版) 课件 1-2 希尔排序.pptx

数据结构——基于C++语言(微课版) 课件 1-2 希尔排序.pptx

希尔排序的概念;;概念

在直接插入排序算法中,关键字移动的次数主要与哪些因素有关?;概念

希尔排序就是将待排序的关键字划分成若干组,对每个组进行直接插入排序,从而减少参与直接插入排序的数据量和空间移动的时间开销。当经过几次分组排序后,每组关键字的排列已经基本有序,这个时候再对所有的关键字实施直接插入排序,减少数据移动的开销。这种缩小增量的直接插入排序方法,就是希尔排序方法。;希尔排序步骤

1、关键字分组。假设待排序的关键字个数为n,以关键字间的距离d(步长因子)为划分标准,将距离相同的关键字划分为一组。如先取整数d=n/2,将所有距离为d的关键字构成一组,从而将整个待排序关键字序列分割成为d个子序列,即将关键字划分为d个组。;希尔排序步骤

1、关键字分组;

2、组内排序。对每个分组分别进行直接插入排序;;希尔排序步骤

1、关键字分组;

2、组内排序。对每个分组分别进行直接插入排序;

3、缩小间隔d=8,例如,取d=d/2=4;重复步骤1和2,对每组直接插入排序;

;希尔排序;希尔排序步骤

1、关键字分组;

2、组内排序。对每个分组分别进行直接插入排序;

3、缩小间隔d=8,例如,取d=d/2=4;重复步骤1和2,对每组直接插入排序;

4、直到最后取d=1,即将所有关键字放在一组进行一次直接插入排序,最终将所有关键字重新排列成按关键字有序的序列。;小结:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档