我无法理解堆。
每个子树的大小最多为 2n/3——最坏的情况 当树的底层正好是半满时发生
"最坏的情况发生在树的底部正好是半满的时候。
我无法理解这一点。为什么是半满的?..为什么?我认为如果有更多的树,可能需要更多时间。否则需要更少的时间。
感谢您的阅读
堆排序时间顺序取决于树的深度,所以如果你有一个有 n 个节点的树,并且它是平衡的(意味着每个子树中的节点数几乎相等),这是最好的情况,因为可能的深度最小! 如果树不平衡,这是最坏的情况,树的深度会增加。如果你有一棵有 n 个节点的树,并且"树的底层是半满的",它会增加树的深度并增加顺序......
在堆化时,我们将子根与其子根进行比较。在构建堆的情况下,n-2n/3 节点是叶节点,因此我们从 2*n/3 节点开始堆化进程,以避免不必要的迭代