看板 TL
作者 標題 [筆記] shell sort 的演算法
時間 2013年01月27日 Sun. PM 06:30:40
看板 C_and_CPP
作者 標題 Re: [問題] 請問有人可以幫忙嗎
時間 Mon Oct 10 20:54:20 2005
※ 引述《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
--
Shaken, Not Stirred.
--
※ 作者: TL 時間: 2013-01-27 18:30:40
※ 看板: TL 文章推薦值: 0 目前人氣: 0 累積人氣: 35
回列表(←)
分享