标签:
原理:一次改变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; } } } }
哪里出现问题了呢? 因为他的增量元素不互质,则小增量可能根本不起作用。
8是4的倍数,4是2的倍数,2是1的倍数
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4772200.html