Recursion 树中树的时间复杂性[…]
在平衡搜索树中插入的值为O(log n) 插入到[…]的树的树的树的树的树中的时间复杂度是多少?(这将持续Recursion 树中树的时间复杂性[…],recursion,tree,time-complexity,Recursion,Tree,Time Complexity,在平衡搜索树中插入的值为O(log n) 插入到[…]的树的树的树的树的树中的时间复杂度是多少?(这将持续k次)。所以主树的每个节点都是k次 为了简单起见,我们假设: 每棵树的高度是n 从主父树开始,经过k树,最后插入最里面的树 所有树都是平衡搜索树 撇开平衡过程如何在这样的结构中工作不谈 我最初猜测是O(klogn)。有什么想法吗?如果主树只是一个没有特定属性的随机树,那么要插入新元素,我们可以在O(n)时间中搜索主树,以找到合适的子树来插入密钥。这将是O(nlogn)。但是,如果主树和所
k
次)。所以主树的每个节点都是<代码>k次
为了简单起见,我们假设:
- 每棵树的高度是
n
- 从主父树开始,经过
树,最后插入最里面的树k
- 所有树都是平衡搜索树
我最初猜测是
O(klogn)
。有什么想法吗?如果主树只是一个没有特定属性的随机树,那么要插入新元素,我们可以在O(n)
时间中搜索主树,以找到合适的子树来插入密钥。这将是O(nlogn)
。但是,如果主树和所有子树都是平衡的,那么整个事情就是一个平衡树,insert将像往常一样使用O(logn)
。主树有任何特定的属性吗?是的,根据@BlueRaja-Danny Pflughoeft在对链接帖子的评论中的回应:我认为它应该是O(logn+logn+logn+…[k倍])
,这进一步等同于O(log(n*n*n*…[k倍])
,结果是O(logn^k)
或O(klogn)
。因此:如果k
值很小,导致O(logn)
,我可以忽略它吗?如果k
很大,那么使用O(k log n)
?如果树与问题中的树相似(子树中的每个节点都指向自己的根),那么yesO(klogn)
似乎是正确的。假设主树有n
子树,每个子树都有n
子树,最里面的树都有n
节点(不是高度)。