1.简介
shellsort又称为最小增量排序。
使用增量序列h1,h2,...ht,在使用增量hk的一趟排序后,对于间隔为k的元素都是排序后的。
使用希尔增量排序时最坏运行时间为theta(N2)
增量序列通常的选择为:ht = N/2,hk = hk+1/2
2.实现
void shellsort(ElementType A[], int N) { int i, j, Increment; ElementType Tmp; for (Increment = N / 2; Increment > 0; Increment /=2) { for (i = Increment; i < N; i++) { Tmp = A[i]; for (j = i; j >= Increment; j -= Increment) { if (Tmp < A[j - Increment]) { A[j] = A[j - Increment]; } else break; } A[j] = Tmp; } } }