我知道對於這個特定問題的答案是O(V + E),對於像樹這樣的圖,這是有道理的,因爲每個頂點只被探索一次。最差情況時間深度優先搜索的複雜度
但是讓我們假設圖中有一個循環。
例如,讓我們拿一個帶有四個頂點A-B-C-D的無向圖。
A連接到B和C,B和C連接到D.所以總共有四條邊。 A→B,A→C,B→D,C→D,反之亦然。
讓我們來做DFS(A)。
將第一探索B和B的鄰居d和D的鄰居C.該℃後不會有任何邊緣,以便它會回到d和B,然後A.
則A將遍歷其第二邊緣並試圖探索C,因爲它已經被探索,它不會做任何事情,DFS將結束。
但是在這裏頂點「C」已遍歷兩次,而不是一次。顯然最壞情況下的時間複雜度可以直接與V成正比。
任何想法?
我在圖中看不到D→C,所以它應該從D開始追蹤。 所以遍歷應該是A-> B-> D,A-> C。 – ffledgling 2012-08-03 20:20:05
@Ayos它是一個無向圖,因爲C-> D在那裏D-> C也在那裏,抱歉不正確的表示 – Dude 2012-08-03 20:27:25