一、原理
? ? ? ? 選擇一個(gè)增量序列他t1, t2, ... , tk,? 其中ti > tj,? tk=1;
? ? ? ? 按增量序列個(gè)數(shù)k,? 對(duì)序列進(jìn)行k趟排序
? ? ? ? 每趟排序滑负,根據(jù)對(duì)應(yīng)的增量ti, 將待排序列分割成若干長度為m的子序列,分別對(duì)各子表進(jìn)行直接插入排序多柑。僅增量因子為1時(shí)讨勤,整個(gè)序列作為一個(gè)表來處理,表長度即為整個(gè)序列的長度
最佳情況:? ?T(n) = O(n*)? ? ? ? ? ? ? ?最壞情況:T(n) = O(n*)? ? 平均情況:? T(n) = O(n*)
過程:(1)初始增量 gap = length / 2, 意味著整個(gè)數(shù)組被分為五組懂版,
? ? ? ? ? ? ?(2)對(duì)這5組分別進(jìn)行直接插入排序,小元素被調(diào)到前面躏率,然后縮小增量gap=5/2
? ? ? ? ? ? ?(3)對(duì)上面兩組進(jìn)行直接插入排序躯畴,在縮小增量pag=2/2