在CLRS,第三版,第155页中,假定在MAX-HEAPIFY中,
子树的每个子树的大小最大 为2n / 3- 最坏的情况是树的底部恰好是一半满了。
我知道为什么当树的底部恰好是一半满时最糟糕。在这个问题中还回答了MAX-HEAPIFY中的最坏情况:“最坏情况发生在树的底部恰好是一半满的时候”
我的问题是如何获得2n / 3?
为什么如果底层为半满,则子树的大小最大为2n / 3?
如何计算?
谢谢
在每个节点上恰好有0个或2个子节点的树中,具有0个子节点的节点数比具有2个子节点的节点数多1。{说明:高度为h的节点数为2 ^h,几何级数的求和公式等于(从0到h-1的节点总和)+1;并且所有从高度0到h-1的节点都是正好有2个子节点的节点}
ROOT L R / \ / \ / \ / \ ----- ----- *****
令k为R中的节点数。L中的节点数为k +(k + 1)= 2k +1。节点总数为n = 1 +(2k + 1)+ k = 3k + 2 (根加L加R)。该比率是(2k+1)/(3k+2),在上面以2/3限制。常数不能小于2/3,因为当k达到无穷大时的极限是2/3。