PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Grad-ProbAsk
[理工] 資結 merge sort
作者:
newpuma
(還很新)
2016-12-23 16:46:46
http://i.imgur.com/WdeKDSx.jpg
因為我寫不出遞迴式,所以用iterative分析:
1 因為merge的過程中只要其中一個run為空就會馬上return 所以不管是n/k跟n/k做merge
或是3n/k與n/k做merge應該都是花O(n/k)的時間
2 因為他是依序往後merge所以總共會執行k回合
這樣分析下來應該是k*n/k也就是O(n)吧?
為什麼答案是給n*k?話說題目說的following algorithm是...?(104交大資演)
如果每次merge都要做最大run原是個數的時間才有機會被bound在n*k吧?
作者:
ken52011219
(呱)
2016-12-23 20:09:00
http://i.imgur.com/oBKDwQk.jpg
作者:
yupog2003
(屁股)
2016-12-23 17:58:00
最後一次做merge的時候會花O((k-1)*n/k),感覺這時候不能說bound在O(n/k)但每次merge都被bound在O(n)是肯定的這樣子想好了,第一次是O(n/k),第二次是O(2*n/k)...把每一次加起來就是O(n/k)+O(2*n/k)+...+O((k-1)*n/k)=n/k*(1+2+3+...+k-1)=O((n/k)*k*(k-1)/2)=O(n*k)第二行忘記用big-O包起來了
作者:
gigayaya
(gigayaya)
2016-12-23 17:55:00
應該是1的地方錯了吧 假設k=10 n=2 會有2 2 2 2 2個data然後你做完第一輪後 是4 2 2 2, 4在跟2 merge所以你每一輪的merge跟k沒關系 是跟n有關 他又說merge在linear time, 所以merge的time是n n作k回=O(nk)
繼續閱讀
[理工] 資演 最小生成樹
newpuma
[理工] B tree與B+ tree的插入
newpuma
[理工] 105 中央 資工 數學
ken52011219
97年政大資科 離散
NPUE
[理工] 103 中央 os對答案
Astar5566
[理工] 演算法 101台大
gary19941208
[理工] 成大103、104離散
visual
[理工] 離散 101成大資工
yellow60127
[理工][計組]清大104計系
h9638512
[理工] 中央104 OS對答案
joeboy
Links
booklink
Contact Us: admin [ a t ] ucptt.com