※ 引述《nshnsh (...................)》之銘言:
: 請問有人可以幫我找一個用C語言寫的shell sort的程式碼嗎
: 還需要此程式碼的程式圖.....
: 請大家幫幫忙...
: 任一個程式碼都可.只是要附流程圖
簡單講
shell sort是變化版的insertion sort
每次對某個間隔k, 排序第1,k+1,2k+1,...,(n-1)k+1個元素;
第2,k+2,2k+2,...,(n-1)k+2個元素;
第3,k+3,2k+3,...,(n-1)k+3個元素;
.........
第k,2k, 3k, ...,nk 個元素。
這樣稱為一個回合
回合之間用越來越小的k值當間隔
最直覺的間隔數是1, 2, 4, 8, ..., 2^i (當然是由大到小使用)
不過據說 間隔使用 1, 4, 13, ..., (3^i - 1)/2的值會好很多
時間複雜度據研究是O(n^1.5)
要程式碼的話可以找「名題精選百則 冼鏡光著」 這裡面有shell sort的範例
--
"LPH" is for "Let Program Heal us"....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.54