堆排序.为什么最坏的情况是最后一棵树的一半



我无法理解堆。

每个子树的大小最多为 2n/3——最坏的情况 当树的底层正好是半满时发生

"最坏的情况发生在树的底部正好是半满的时候。

我无法理解这一点。为什么是半满的?..为什么?我认为如果有更多的树,可能需要更多时间。否则需要更少的时间。

感谢您的阅读

堆排序时间顺序取决于树的深度,所以如果你有一个有 n 个节点的树,并且它是平衡的(意味着每个子树中的节点数几乎相等),这是最好的情况,因为可能的深度最小! 如果树不平衡,这是最坏的情况,树的深度会增加。如果你有一棵有 n 个节点的树,并且"树的底层是半满的",它会增加树的深度并增加顺序......

在堆化时,我们将子根与其子根进行比较。在构建堆的情况下,n-2n/3 节点是叶节点,因此我们从 2*n/3 节点开始堆化进程,以避免不必要的迭代

最新更新