看板 Grad-ProbAsk 關於我們 聯絡資訊
http://www2.lib.nctu.edu.tw/n_exam/exam97/cslz/cslz1001.pdf 想問一下 第二大題的第四小題 用adj matrix去做 kruskal 與prim's 手邊有個答案 kruskal 是o(n^2*log|V|) 我算的是O(N^3) 就每次掃描adj matrix 找最小 所以一次是 n^2 總共(n-1)n^2 =O(N^3) 我這樣想有錯嗎? 還有另外問一下 第一大題的第三小題 那是什麼東西101個thread? 跟binary tree的觀念是? 第4大題的第4小題 應該是true? 第8小題是在問什麼 dijkstra怎麼用在binominal heap <==可以稍微給我個觀念就好嗎 感激不盡 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.152.191 ※ 編輯: aoqq12 來自: 123.204.152.191 (01/18 22:49)
cakeboy:是F heap用在dijkstra 可以把時間壓在O(e+nlogn) 01/18 22:51
aoqq12:可以問一下他是怎麼做嗎? 01/18 22:53
aoqq12:有點沒概念 01/18 22:53
cakeboy:就是dijkstra 一開始不是要挑未拜訪頂點中距離成本最小的 01/18 22:56
cakeboy:所以用f-heap的delete min運算 花O(logn) 然後後面如果新 01/18 22:58
cakeboy:算出來的值比之前的小不是要替換嗎 所以相當於 f heap 01/18 22:58
cakeboy:的 decrease key 花O(1) for every(u,w) 這邊一共有e個邊 01/18 23:00
cakeboy:所以執行O(e)次,所以搭配adjacency list可以在O(e+nlogn) 01/18 23:02
listplayers:F heap用在dijkstra不是O(nlog(n+e))嗎?還是我記錯了? 01/18 23:02
aoqq12:!~!!!!太感謝了 我懂了 01/18 23:03
aoqq12:b heap 才是 01/18 23:03
aoqq12:f heap 可以少掉合併的時間 01/18 23:06
aoqq12:前幾題有人知道嗎 orz 01/18 23:18
cakeboy:kruskal 是eloge 邊少有利邊多就變n^2loge 01/18 23:21
aoqq12:可是他不是還是要每個都check到嗎 是用adj matrix 01/18 23:23
aoqq12:不論邊多或邊少 adj list才可以有差別? 01/18 23:24
cakeboy:我記得kruskal 是用union 看有沒有cycle 花logn 01/18 23:25
cakeboy:有e個邊 所以就eloge 01/18 23:26
aoqq12:嗯嗯對啊 可是我比較疑惑的點是 因為他用adj matrix 01/18 23:29
dy957:原PO說的V^2 感覺換個角度想就是E欸 我覺得答案是O(ElgV) 01/18 23:29
cakeboy:我說錯了一開始是先挑 min cost edge 用heap花 O(eloge) 01/18 23:30
aoqq12:所以 他每次找min edge都要掃過 adj matrix一次 01/18 23:30
aoqq12:!!!!對吼還可以排序 01/18 23:31
aoqq12:可是這樣會違反題意嗎 因為他說用adj matrix去做 01/18 23:31
cakeboy:一個圖最多邊c(n,2),用matrix的話應該只要看他有沒有相連 01/18 23:34
cakeboy:傳回應該只要o(1)不用全部找 01/18 23:34
aoqq12:嗯嗯有道理= = 我一直以為限制在adj matrix的方法內 01/18 23:36
cakeboy:所以只要check n(n-1)/2個邊 然後搭配union find這樣 不知 01/18 23:37
cakeboy:對不對 01/18 23:37
aoqq12:如果找最佳的應該是對啦 不過題意要是能在清楚點就好了 01/18 23:39
cakeboy:引線是因為用link list會浪費掉n+1的指標所以把它拿來當 01/18 23:40
cakeboy:引線,可以簡化中序追蹤 01/18 23:40
cakeboy:所以100個點就有101條引線 01/18 23:41
cakeboy:第四大題我覺得是錯,因為他說any sort algo 但是radix 01/18 23:43
cakeboy:counting sort不用nlogn 其實這提他寫一大堆,感覺是看關 01/18 23:44
cakeboy:鍵字 01/18 23:44
aoqq12:嗯嗯!! 太感謝啦 第四題對吼..他寫any= = 01/18 23:47
aoqq12:囧... 01/18 23:48
dy957:第四題根據補習班老師的說法 他說是錯的= = 01/18 23:54
dy957:應該是敘述出了問題 是因為comparison tree所以才nlgn吧 01/18 23:55
aoqq12:嗯嗯3q 01/19 01:25
privatewind:因為dijkstra需要找每次向外擴張最短的點 01/19 08:11
skill91002:cake大的講解,讓我更了解dijkstra's的運作了@@ 不然 01/19 16:03
skill91002:本來看MIT那本被搞得很亂 感謝! 01/19 16:04
sneak: 所以執行O(e)次,所 https://daxiv.com 09/11 14:09