簡體   English   中英

BFS和DFS的運行時是否在二叉樹O(N)上?

[英]Is the runtime of BFS and DFS on a binary tree O(N)?

我意識到泛型圖上的BFS和DFS的運行時是O(n + m),其中n是節點數,m是邊數,這是因為對於每個節點,必須考慮它的鄰接列表。 但是,當它在二叉樹上執行時,BFS和DFS的運行時是什么? 我認為它應該是O(n),因為可以離開節點的可能邊數是恆定的(即2)。 請確認這是否正確理解。 如果沒有,那么請解釋二叉樹上BFS和DFS的正確時間復雜度是什么?

BFSDFS的時間復雜度僅為O(|E|) ,或者在您的情況下為O(m)

在二叉樹中, m等於n-1因此時間復雜度等於O(|V|) m指的是邊的總數,而不是每個頂點的相鄰邊的平均數。

是的,O(n)是正確的。

另請注意,邊數可以更准確地表示為節點數 - 1.通過考慮除了根之外的每個節點都有從其父節點到其自身的邊緣,可以很容易地看出這一點。這些邊緣覆蓋所有節點樹中存在的邊。

暫無
暫無

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

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