【问题标题】:Time complexity of tree of trees of trees of [...]树的树的时间复杂度 [...]
【发布时间】:2019-08-27 23:22:14
【问题描述】:

插入平衡搜索树是 O(log n)。

插入 [...] 的树的树的树的时间复杂度是多少? (这继续k 次)。所以主树的每个节点都是...k次的树。

为简单起见,我们假设:

  • 每棵树的高度为n
  • 从主父树开始,经过k树,最后插入最里面的树
  • 所有树都是平衡搜索树

暂且不说平衡过程在这样的结构中是如何工作的。

我最初的猜测O(k log n)。有什么想法吗?

【问题讨论】:

  • 主树有什么特定的属性吗?
  • 是的,它也是平衡搜索树。

标签: recursion tree time-complexity


【解决方案1】:

如果主树只是一棵没有特定属性的随机树,那么要插入一个新元素,我们可以在O(n)时间搜索主树,找到合适的子树来插入密钥。这将是O(nlogn)。但是,如果主树和所有子树都是平衡的,那么整个事情就只是一个平衡的树,插入将照常使用O(logn)

【讨论】:

  • 基于@BlueRaja - Danny Pflughoeft 对此处链接帖子的评论中的回复:stackoverflow.com/a/5572524/8974764 我认为应该是O(log n + log n + log n + ... [k times]),这进一步等同于O(log (n * n * n * ... [k times])),结果在O(log n^k)O(k log n)
  • 因此:如果k 的值很小导致O(log n),我可以忽略它吗?如果k 很大,那么使用O(k log n)?
  • 如果树与该问题中的树相似(子树中的每个节点都指向自己的根),那么是的 O(klogn) 似乎是正确的。假设主树有n 子树,每个子树都有n 子树,最里面的树每个都有n 节点(不是高度)。
猜你喜欢
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
相关资源
最近更新 更多