zoukankan      html  css  js  c++  java
  • sort_heap 对完全二叉树排序

    pop_heap和sort_heap操作的对象是max-heap,即父节点比子节点大的heap结构。

    push_heap是将使插入新元素后仍满足max-heap结构(原来也是max-heap结构)。

    make_heap是讲一段数据转化为max-heap.

    因为每次pop_heap可获得heap中键值最大的元素,所以可持续对整个heap做pop_heap操作,每次将操作范围从后向前缩减一个元素,便可实现一个递增序列。

    // 以下這個 sort_heap() 不允許指定「大小比較標準」
    template <class RandomAccessIterator>
    void sort_heap(RandomAccessIterator first, RandomAccessIterator last) {
      // 以下,每執行一次 pop_heap(),極值(在STL heap中為極大值)即被放在尾端。
      // 扣除尾端再執行一次 pop_heap(),次極值又被放在新尾端。一直下去,最後即得
      // 排序結果。
      while (last - first > 1)
         pop_heap(first, last--); // 每執行 pop_heap() 一次,操作範圍即退縮一格。
    }
    
  • 相关阅读:
    电容的串联和并联的性质
    start.sh
    shell 得到当前目录路径
    Java程序远程无法执行nohup命令
    mysql windows 安装5.7
    电阻并联的性质
    电阻串联的性质
    webjars
    邮箱设置
    万用表使用注意事项
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2846250.html
Copyright © 2011-2022 走看看