【发布时间】:2021-08-25 14:59:06
【问题描述】:
一个非二叉树遍历算法的时间和空间复杂度是多少?该算法从根开始打印出树中所有可能的路径?
【问题讨论】:
-
取决于遍历。但是深度优先搜索可以完成这项工作,因此可以按 O(N) 的顺序完成,其中 N 是节点数。
标签: algorithm time-complexity tree-traversal space-complexity
一个非二叉树遍历算法的时间和空间复杂度是多少?该算法从根开始打印出树中所有可能的路径?
【问题讨论】:
标签: algorithm time-complexity tree-traversal space-complexity
对于二叉树,#edges = #vertices - 1。遍历需要 O(|E|) 或 O(|V|) 时间。
在非二叉树的情况下,#edges = #vertices - 1 仍然成立。因此,遍历仍然需要 O(|E|) 或 O(|V|) 时间。
获取每条可能的路径所花费的时间与遍历 = O(|E|) 或 O(|V|) 的时间相同。
如果要打印所有存储的路径,可能需要 O(最长路径的长度 * 路径数)。
总时间复杂度 =遍历+打印 = O(|E|) + O(最长路径长度 * 路径数)。
【讨论】: