每个节点有三个孩子的树搜索的时间复杂度

时间:2017-03-02 14:04:00

标签: data-structures binary-search-tree

在二进制搜索树的情况下,每次迭代时查找元素的时间复杂度为O(logn),要搜索的元素减半。但是如果每个节点下都有一个最多有三个子节点的树,并且认为我们有一些条件可以分支搜索三个分支中的下一个,那么时间复杂度是多少。在这种情况下,每次要搜索的元素减少1/3。

2 个答案:

答案 0 :(得分:1)

阅读答案here并理解二元树的原因,即递归关系为

T(n) = T(n/2) + O(1)

如果树有3个节点或更多通常是k个节点,则相同的关系将是

T(n) = T(n/k) + O(1)

按照这个答案,你会发现对于任何k-ary树,二进制搜索将采用O(log k n)

答案 1 :(得分:1)

我会说复杂性为O(log 3 N)的原因是你有一些条件在三个分支中接下来要搜索

在最糟糕的情况下,每次迭代都会减少3倍的剩余迭代次数。