希尔排序其实是直接插入排序的一种优化,不过是增加了一个步长进行分组插入罢了,又称为缩小增量排序。其基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待gap=1时,再对全体元素进行一次直接插入排序,数组便是有序的了。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比直接插入有较大提高。 按定义直接实现: void shellsort1(int a[], int n) { int i, j, gap; for (gap = n /...