是平衡二进制树上预购和DFS的时间复杂性

Are time complexity of pre-order and DFS on a balanced binary tree same?

本文关键字:DFS 时间复杂性 平衡 二进制      更新时间:2023-10-16

我从答案中读到预订是一种dfs:link

然而,对于平衡的二进制树,树 - 触发器的时间复杂性是 o(logn(链接和DFS的时间复杂性的时间复杂性为 o(n(链接。

那么,预订的遍历不是一种DFS还是我误解了概念?

谢谢。

二进制搜索树的预订,内或后订单遍历的时间复杂性始终是θ(n(,树中的节点的数量在其中。看到这一点的一种方法是,在每种情况下,每个节点一次访问一次一次,并且每个边缘都会完全访问两次(一旦下降,一次向上上升(。

您在问题中提到的是,平衡树上的树遍历的时间复杂性是O(log n(。这里的O(log n(实际上是指空间复杂性(需要多少辅助内存(,而不是时间复杂性(将执行多少操作(。这样做的原因是,在典型的实现中,所有这些树木遍历都需要存储一堆到目前为止访问的节点,以便必要时遍历遍历可以在树上备份更高。这意味着所需的辅助空间与树的高度成正比,在平衡的树中为o(log n(,在任意的bst中为o(n(。

因此,从某种意义上说,您问题的最佳答案可能是" DF,dfs,inorder遍历,预订遍历和BST的后阶遍历始终需要相同的时间(θ(n((,而空间的复杂性取决于树的高度,该高度可以介于&theta之间;(log n(和θ(n(。"