zoukankan      html  css  js  c++  java
  • 大根堆的创建过程

    初始堆就是大根堆,只是是第一次(初始序列)调整,第一次必须是自底向上逐个调整,以后(第一次交换后)是自上向下调整(因为除了第一个即堆顶元素,其他都是已经调整好的堆)。过程:
    先把数据画出一颗二叉树:
                         40
               30                92
        16         20     47       25
    56   55  35
    从最后一个数据的双亲(20)开始,数据最大的成为双亲
    20和35交换;下一个双亲(16),16和56交换;
    双亲92不动;结果如下
                        40
              30                   92
        56          35     47        25
    16   55   20
    双亲30,相对麻烦些:首先是30和56交换,然后再交换30和55,结果:
                        40
              56                   92
        55         35      47        25
    16   30   20
    最后是双亲40(根);首先40和92交换,然后40和47交换,结果就是调整好的大顶堆:
                         92
             56                     47
        55          35     40           25
    16    30  20
    即:{92,56,47,55,35,40,25,16,30,20} 

  • 相关阅读:
    hdu 1087(LIS变形)
    poj 1088(记忆化搜索)
    hdu 1505(最大子矩阵)
    hdu 1506(好题+DP或者RMQ)
    poj 2593&&poj2479(最大两子段和)
    hdu 1003(最大子段和)
    hdu 2881(LIS变形)
    poj 1692(动态规划)
    CodeForces 626C Block Towers
    CodeForces 626B Cards
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7422244.html
Copyright © 2011-2022 走看看