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