建堆时,最坏情况下需要挪动元素次数是等于树中各结点的高度和。问:对于元素个数为12的堆,其各结点的高度之和是多少?(A)
A. 10
B. 11
C 12
D 15
最大堆是根结点的数值比左右儿子都大
最小堆是根结点的数值比左右儿子都小
我们以最大堆为例,最坏情况是所有数值以最小堆排列,那么结点开始挪动.
注:移动顺序从倒数第二层开始移动,向上移动,直至根结点.
元素个数为12的堆(必须是完全二叉树)有4层(1 2 4 5) , 第三层结点需要3*1次(3层最右边结点是叶子节点,不需要移动) , 第二层结点移动需要2*2次 , 那么根结点移动需要1*3次 .
共3+4+3=10次
答案为A选项