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

Time complexity of the creation of a Balanced binary search tree?

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

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

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

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

Why can't we apply the same logic and say the time complexity of a balanced binary search tree is also O(n)?

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