【问题标题】:Time and Space complexity of a Balanced Binary Search Tree平衡二叉搜索树的时间和空间复杂度
【发布时间】:2020-04-17 21:09:36
【问题描述】:

构建平衡二叉搜索树的计算复杂度(时间和空间复杂度)是多少?

【问题讨论】:

  • 你怎么看?为什么?

标签: time-complexity binary-tree binary-search-tree binary-search space-complexity


【解决方案1】:

将一个节点插入平衡二叉搜索树需要O(log n)时间,因此可以在O(n log n)时间内插入n个节点来构建一棵树。

还有待证明,没有更好的方法来构建树 - 例如,将元素插入堆也需要 O(log n) 时间,但有 a cleverer algorithm 构建了一个在 O(n) 时间内大小为 n 的堆。但是,Ω(n log n) 是任何比较排序算法的下限,因此不可能有一种渐近更快的方法来构建 BST,因为您可以通过构建 BST 然后 traversing it in order 来进行比较排序。

【讨论】:

    【解决方案2】:

    n 节点构建BST 的时间复杂度是O(n*log(n))

    为什么?您需要遍历每个 n 节点才能将其插入树中。现在插入一个节点需要log(n) 比较。

    因此,在二叉搜索树中插入 n 节点的总时间复杂度为 O(n*log(n))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 2014-02-28
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多