我一直在尋找到連接組件的運行時間,和整個本說明書來到Wikipedia:連接的設備計數算法
這是簡單的計算線性時間的圖 的連接部件(在使用廣度優先搜索或深度優先搜索來確定圖的頂點和邊的數量項)。在任何一種情況下,從某個特定頂點v開始的搜索 將在返回 之前找到包含v(且不再有)的整個連接組件。要查找圖形的所有連接組件,請通過其頂點循環 ,首先開始新寬度或深度優先 搜索循環何時到達尚未包含在以前找到的連接組件中的 的頂點。
該操作的運行時間是多少?我發現有消息稱,連接的組件在O(n)
時間內完成。但是,從我所知道的情況來看,在最壞的情況下,每個頂點都是自己的連接組件,該算法將不得不執行n個DFS/BFS操作,每個操作本身都是O(n)
時間。所以,不應該這樣做的運行時間是O(n^2)
?
如果所有的頂點斷開然後每個BFS的將要結束其起始頂點,因此爲O( 1)。你必須反過來辯論:任何你搜索的方式,你永遠不會多次訪問一個頂點,因此整個操作是O(n) – BeyelerStudios
DFS或BFS需要O(N)時間,但是這是不同的N.所有連接組件的大小之和必須跟蹤,等於整個圖形的大小。 –