簡體   English   中英

無向圖中 DFS 的時間復雜度

[英]Time complexity of DFS in undirected graph

假設我們有 4 個節點,所有節點都連接到所有其他節點,我需要從 node1 到 node4 的 go。 我檢查的大多數資源的時間復雜度是O(V+E) ,但我有點困惑。

                            node1 
                              |
         node2      /       node3       /        node4     level2     3
           | 
  node1 / node3 / node4      ..................            level3     3 to power of 2

因此,如果所有節點都將被訪問,那么復雜度是 N 的 N 次方。 即使使用哈希集來跟蹤使用回溯訪問了哪些節點,它也不應該影響整體時間復雜度嗎?

如果您從每個節點訪問所有節點,復雜性不會是N N ,如果N是您的節點數,那么復雜性將是N 2

現在碰巧一個完整的圖(一個所有節點都連接到所有節點的圖,就像在你的例子中一樣)有許多邊|E| = O(|V| 2 ) 如果您不知道為什么,請注意每個節點都連接到(N - 1)個其他節點,因此確切的邊數是(N - 1) 2 = N 2 - 2N + 1 = O(N 2 )

正如你所說,深度優先搜索的時間復雜度是O(|V| + |E|) 在大 O 表示法中,這與O(max(|V|, |E|))相同,因為只有主導項才重要。 所以對於我們的完整圖, |E| 占主導地位,復雜性僅為O(|E|)

正如我們之前所說, |E| = O(|V| 2 ) ,所以我們的復雜度是O(|E|) = O(|V| 2 )

這是否為您的困惑提供了一些清晰的信息?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM