顯示廣告
隱藏 ✕
看板 TL
作者 TL (踢欸樓)
標題 [筆記] shell sort 的演算法
時間 2013年01月27日 Sun. PM 06:30:40


看板 C_and_CPP
作者 LPH66 (運命)
標題 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 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇