是平衡二进制树上预购和DFS的时间复杂性
Are time complexity of pre-order and DFS on a balanced binary tree same?
我从答案中读到预订是一种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(。"
相关文章:
- 具有未知值时的时间复杂性
- 使用堆查找第K个最大元素的时间复杂性
- 解决这个问题的时间复杂性是多少
- 如果你有一个固定大小的数组,你需要遍历它!n次,使用二进制搜索如何改变时间复杂性
- 对于像C++这样的现实世界语言,时间复杂性有什么一致的定义吗
- 两个嵌套循环的运行时间复杂性:二次型还是线性
- 是平衡二进制树上预购和DFS的时间复杂性
- 带有多个内部回路的循环的时间复杂性
- 列表STL的时间复杂性在一段时间内进行排序
- O(2M N)和O(kN)的时间复杂性
- 映射向量的时间复杂性是多少
- 时间复杂性差异以及如何
- 递归最糟糕的情况时间复杂性
- 可传递值影响递归算法的渐近时间复杂性
- 程序的时间复杂性确定两个字符串是否彼此排列
- 为什么此代码O(n)的时间复杂性
- next_perMuart的时间复杂性在大o符号中
- C 中使用了哪种类型的堆以及STD :: Pirstity_queue的时间复杂性
- 带有两个递归调用的递归算法的时间复杂性
- 是以下片段O(n^2)的时间复杂性