[理工][軟體]99台大軟體設計

看板Grad-ProbAsk作者 (嗚嗚~~~~)時間13年前 (2010/12/11 21:23), 編輯推噓5(5012)
留言17則, 5人參與, 5年前最新討論串1/1
第5題 Give a pseudocode that determines whether or not an undirected graph G=(V,E) contains a cycle. You need to show that your pseudocode runs in O(V) time. You may assue that the adjacency-list representation of G is given, and for each vertex u in V, Adj[u] consists of all the vertices adjacent to u in G. 題目要求演算法需在O(V)內完成 想請問一下版上大大該怎麼做?? (是否可直接用DFS求解??其複雜度為Θ(V+E)) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.0.166

12/12 02:14, , 1F
用DFS做,沒迴圈,點會比邊多,有迴圈,用的點邊一樣多.O(V)
12/12 02:14, 1F

12/12 09:17, , 2F
請問樓上是用DFS找back edge的找法嗎?
12/12 09:17, 2F

12/12 15:58, , 3F
可以請問一下有迴圈跟沒迴圈的差異嗎???
12/12 15:58, 3F

12/12 16:05, , 4F
沒有迴圈的話 |E|<=|V|-1 O(E) = O(V)
12/12 16:05, 4F

12/12 16:05, , 5F
有迴圈的話 O(E) = O(V^2) 在worst case下
12/12 16:05, 5F

12/12 16:06, , 6F
我也想知道一樓 怎麼在有迴圈下可以用O(V) 完成
12/12 16:06, 6F

12/12 16:07, , 7F
我剛剛說的好像是要連通才是@@
12/12 16:07, 7F

12/12 16:41, , 8F
話說…題目只說是undirect…並沒有說是簡單圖或多重圖
12/12 16:41, 8F

12/12 16:41, , 9F
所以我想worst cast應該不只O(V^2) ???
12/12 16:41, 9F
※ 編輯: peropero1 來自: 59.126.0.166 (12/12 16:42)

12/12 16:43, , 10F
畢竟Kn似乎看來不是worst case...
12/12 16:43, 10F

12/13 18:25, , 11F
只要判斷有迴圈就OUTPUT有迴圈,Kn也不用所有迴圈都找過
12/13 18:25, 11F

12/13 18:27, , 12F
所以有迴圈的話,所搜尋過的點和邊會一樣
12/13 18:27, 12F

12/13 18:52, , 13F
設一個v的前行點u,w是由v出發連到的點,DFS做到前方沒有沒
12/13 18:52, 13F

12/13 18:55, , 14F
找過的點就會backtracking,這時候如果有w=/=u就有迴圈
12/13 18:55, 14F

08/09 10:59, , 15F
所以有迴圈的話,所搜尋 https://noxiv.com
08/09 10:59, 15F

09/11 14:05, , 16F
//noxiv.com https://daxiv.com
09/11 14:05, 16F

12/15 00:28, 5年前 , 17F
請問樓上是用DFS找b https://daxiv.com
12/15 00:28, 17F
文章代碼(AID): #1D0tjjsY (Grad-ProbAsk)