Re: [理工] [軟設]-中正資工考古\

看板Grad-ProbAsk作者 (浪漫A大調)時間14年前 (2011/03/08 01:34), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串3/3 (看更多)
6.(T/F)The worst case time complexity of Dijstra's shortest path algorithm is O(n^3) 我猜 false 講義上只有寫 Dijkstra's Algo Time Complexity 是 O(n^2) 所以我也不清楚 worst case下 time complexity 長怎樣@@" 以Cormen書上的pseudo code來說(一般來說也是) Dijkstra's algo可以分成兩個部分: 1.初始化各點資訊( 含最短距離及老爸 ) => "Build" 一個資料結構 2.While loop 含以下兩個動作 : (1)取出d值最小的點(i.e.取最近的點) =>"ExtractMin" (|V|次) (2)Relax (i.e.改變最短距離的值) =>"DecreasingKey" (至多|E|次) 以Array實作(i.e.Adjacency matrix): 1.Build : O(V) 2.ExtractMin : O(V) (需Search整個list) 需|V|次 3.DecreasingKey : O(1)   至多需|E|次 TOTAL: O(V) + O(V˙V) + O(E˙1) =O(V^2) 以Adjacency List搭配BinaryHeap實作 : 1.Build : O(V) 2.ExtractMin : O(logV) 需|V|次 3.DecreasingKey : O(logV) 至多需|E|次 TOTAL: O(V) + O(VlogV) + O(ElogV) =O(VlogV + ElogV) ( 若要背的話, 背這個 , 不要背O(ElogV)簡化過的 ) 以Adjacency List搭配FibonacciHeap實作 : 1.Build : O(V) 2.ExtractMin : O(logV) 需|V|次 3.DecreasingKey : O(1) (這個時間非常漂亮!) 至多需|E|次 TOTAL: O(V) + O(VlogV) + O(E˙1) =O(VlogV + E) (100交大考這個!) 觀察可以發現建立資料結構 (i.e.初始化) 所需時間皆是由頂點數決定 但最後會被WHILE LOOP內的時間dominate 而不同的實作方式 可以得到不一樣的時間分析 中正這題要考的應該是array的分析 (因為只有出現n) 不然就三種方式都成立了 畢竟O(n^3) 不是這麼tightly 後兩者是很重要的分析(而且很美啊!) 如果可以就記一下吧! 希望有幫上您的忙!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.120.64.23

03/08 01:48, , 1F
謝謝講解~~~
03/08 01:48, 1F
※ 編輯: rnbjacky 來自: 221.120.64.23 (03/08 01:55)

03/08 07:45, , 2F
交大的資結一向是背多分 0.0+ 不然就考生天生神力,
03/08 07:45, 2F

03/08 07:45, , 3F
當場推出來
03/08 07:45, 3F

03/08 10:28, , 4F
第三個當場推的出來我就要跪了...= =
03/08 10:28, 4F

03/08 10:30, , 5F
要全推 很難啦 有一些基礎去推 還ok 當然了,你要有
03/08 10:30, 5F

03/08 10:30, , 6F
過人的勇氣跟他賭 你推的是否正確
03/08 10:30, 6F
文章代碼(AID): #1DTHSpBZ (Grad-ProbAsk)
文章代碼(AID): #1DTHSpBZ (Grad-ProbAsk)