二叉树上 BFS 和 DFS 的时间复杂度:为什么是 O(n)?
Time complexity of BFS and DFS on a BinaryTree: Why O(n)?
图上的 BFS 或 DFS 的时间复杂度是 O(V+E),因为我们遍历了图的所有节点和边。 (我明白了)但是对于二叉树,BFS 和 DFS 的时间复杂度是 O(V)... 这是为什么?
我假设是因为以下原因:O(V+E) = O(V + V-1) = O(2V) = O(V)。这是正确的推理吗?如果没有,将不胜感激直观的解释。谢谢
所有树都有 n - 1
条边,n
是节点数。时间复杂度在技术上仍然是 O(V + E),但这等同于 O(n + (n-1)) = O(n).
图上的 BFS 或 DFS 的时间复杂度是 O(V+E),因为我们遍历了图的所有节点和边。 (我明白了)但是对于二叉树,BFS 和 DFS 的时间复杂度是 O(V)... 这是为什么?
我假设是因为以下原因:O(V+E) = O(V + V-1) = O(2V) = O(V)。这是正确的推理吗?如果没有,将不胜感激直观的解释。谢谢
所有树都有 n - 1
条边,n
是节点数。时间复杂度在技术上仍然是 O(V + E),但这等同于 O(n + (n-1)) = O(n).