我无法理解堆。
孩子的子树每个都有最大 2n / 3 - 最坏的情况 当树的底层正好是半满时发生
"最糟糕的情况发生在树的底层正好是半满的时候。 "
我无法理解这一点。 半满?为什么? 我想如果有更多的树可能需要更多的时间。 或者花更少的时间。
感谢您阅读
答案 0 :(得分:2)
heapsort时间顺序取决于树的深度,所以如果你有一个有n个节点的树并且它是平衡的(意味着每个子树的子节点中的节点数几乎相等),那么它是最好的情况,因为它是最不可能的深度!如果树不平衡,最坏的情况和树的深度增加.. 如果你有一个有n个节点的树,并且“树的底层是半满的”它会增加树的深度并增加那个顺序...
答案 1 :(得分:1)
在heapify中,我们将subroot与其子项进行比较。在构建堆的情况下,n-2n / 3节点是叶节点,因此我们从2 * n / 3节点开始堆积进程以避免不必要的迭代