说明
希尔排序算法又称最小增量排序算法,其基本思想是:
步骤1:构造一个步长序列delta1、delta2…deltak,其中delta1=n/2,后面的每个delta是前一个的1/2,deltak=1;
步骤2:根据步长序列、进行k趟排序;
步骤3:对第i趟排序,根据对应的步长delta,将等步长位置元素分组,对同一组内元素在原位置上进行直接插入排序。
C代码
(1)常量和变量说明
data:待排序数组data,长度为n,待排序数据记录在data[0]、data[1]、…、data[n-1]中。
n:数组a中的元素个数。
delta:步长数组。
(2)C程序
#include <stdio.h>
void shellsort(int data[], int n) {
int *delta, k