zoukankan      html  css  js  c++  java
  • 《算法导论》笔记 第6章 6.3建堆

    【笔记】

    从最后一个非叶子结点n/2开始,自底向上调用MAX_HEAPIFY建堆。

    证明:BUILD_MAX_HEAP 运行时间的界为O(n)

    一个n元素堆的高度为floor(logn),在任意高度h上,至多有ceil(n/2^(h+1))个结点。



    【练习】

    6.3-1 示出 BUILD_MAX_HEAP 作用于数组 A=<5,3,17,10,84,19,6,22,9> 的过程。





    6.3-2 在 BUILD_MAX_HEAP 的第2行代码中,为什么希望循环下标i从 length[A]/2 降到1,而不是从1升到length[A]/2?

    MAX_HEAPIFY 仅适用于子树均为大根堆的情况,从1升到length[A]/2时,子树不为大根堆,不满足调用MAX_HEAPIFY的条件。


    6.3-3 证明:在任一含n个元素的堆中,至多有ceil(n/2^(h+1))个高度为h的结点。

    不会> <


  • 相关阅读:
    51nod——T1267 4个数和为0
    cf220B莫队
    cf220b
    poj1436水平可见线
    poj2528贴海报,,
    poj3468
    hdu1698
    ural1989 单点更新+字符串hash
    cf Queries on a String
    hdu4605
  • 原文地址:https://www.cnblogs.com/cyendra/p/3681631.html
Copyright © 2011-2022 走看看