标签:tty 注意 com span div nbsp 执行 avg element
一、希尔排序
定义增量序列 DM > DM-1 > … > D1 = 1
对每个 Dk 进行“Dk-间隔”排序( k = M, M-1, … 1 )
注意: “Dk-间隔”有序的序列,在执行“Dk-1-间隔”排序后,仍然是“Dk-间隔”有序的
希尔增量序列
原始希尔排序 DM = [ N / 2 ] , Dk = [ Dk+1 / 2 ]
void Shell_sort(ElementType A[], int N) { for(D=N/2;D>0;D/=2) { /* 希尔增量序列 */ for(P=D;P<N;P++) { /* 插入排序 */ Tmp = A[P]; for(i=P;i>=D && A[i-D]>Tmp;i-=D) A[i] = A[i-D]; A[i] = Tmp; } } }
最坏的情况:T = O(N2)
增量元素不互质,则小增量可能根本不起作用
标签:tty 注意 com span div nbsp 执行 avg element
原文地址:https://www.cnblogs.com/ch122633/p/9021588.html