【发布时间】:2017-03-02 22:10:42
【问题描述】:
在二叉搜索树的情况下,查找元素的时间复杂度为O(logn),因为每次迭代一次,要搜索的元素减半。但是如果有一棵树,每个节点下最多有三个孩子,并且考虑我们有条件在三个分支中搜索下一个分支,那么时间复杂度是多少。在这种情况下,要搜索的元素每次减少 1/3。
【问题讨论】:
标签: data-structures binary-search-tree
在二叉搜索树的情况下,查找元素的时间复杂度为O(logn),因为每次迭代一次,要搜索的元素减半。但是如果有一棵树,每个节点下最多有三个孩子,并且考虑我们有条件在三个分支中搜索下一个分支,那么时间复杂度是多少。在这种情况下,要搜索的元素每次减少 1/3。
【问题讨论】:
标签: data-structures binary-search-tree
阅读答案here,了解为什么二叉树的递归关系是
T(n) = T(n/2) + O(1)
如果树有3个节点或更多通常k个节点,相同的关系将是
T(n) = T(n/k) + O(1)
按照这个答案,你会知道对于任何 k-ary 树,二叉搜索将花费 O(logkn)
【讨论】:
我会说复杂性是 O(log3N),因为您有一些条件,要在三个分支中搜索下一个分支。
在最坏的情况下,每次迭代都会将剩余迭代次数减少 3 倍。
【讨论】: