创建平衡二叉搜索树的时间复杂度?

时间:2017-12-10 09:57:04

标签: algorithm data-structures heap binary-search-tree avl-tree

虽然构建最小堆的时间复杂度看起来像O(nlogn),但可以证明它是O(n)

为什么我们不能应用相同的逻辑,并且说平衡二叉搜索树的时间复杂度也是O(n)。

1 个答案:

答案 0 :(得分:2)

除了BST提供顺序这一事实,而堆只确保元素大于下面的元素(对于最大堆),构建堆的复杂性取决于构建策略。这个wiki image清楚地证明了这一点。

如果您使用siftDown(自下而上)方法,则复杂度为O(n),而siftUpO(nlogn),就像在BST中一样。

  

为什么我们不能应用相同的逻辑并说出时间复杂度   平衡二叉搜索树也是O(n)?

构建堆的自下而上方法不适用于BST,除非输入列表已经排序,但在这种情况下,由于排序,您已经具有O(nlogn)复杂性。