-
实验内容与说明
希尔排序作为插入排序的一种,是对简单插入排序的改进,根据其实现特点,又被称作缩小增量排序。为什么会产生希尔排序这种算法呢?因为我们都知道简单插入排序在待排序数组基本有序的情况下,其排序效率最高;希尔排序的思想就是在进行最终的简单插入排序之前,先对待排序数组进行一系列简单的预处理,使得待排序数组变成基本有序的状态,然后再进行最终的简单插入排序,这样就可以获得较高的效率。假设我们将要对一个长度为n的数组A进行排序,其基本排序思想如下:
先取一个小于n的整数d1作为第一个增量,把数组的全部元素分组。所有距离为d1的倍数的元素放在同一组中。先在各个组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-1<...<d2<d1),此时,所有的元素在同一个组内,并且整个数组已经是基本有序状态,最后再对全体元素进行一次简单插入排序。
图1希尔排序分组示例
图1显示了一个当n=16