zoukankan      html  css  js  c++  java
  • algorithm 02 make_heap

    make_heap

    make_heap()用于把一个可迭代容器变成一个堆,默认是大顶堆

    第三个参数默认情况下为less<>(),less<int>()用于生成大顶堆。

    greater<>()用于生成小顶堆 头文件#include <functional>

    #include<iostream>
    #include<vector>
    #include<algorithm>
    #include <queue>
    #include <functional>
    using namespace std;
    int main(){
    vector<int> q;
    for (int i = 0; i < 10; i++) {
    q.push_back(i);
    }
    make_heap(q.begin(), q.end(),less<int>());
    for (int i = 0; i < q.size(); i++) {
    cout << q[i] << " ";
    }
    return 0;
    }

    pop_heap

    pop_heap()用于将堆的第零个元素与最后一个元素交换位置,然后针对前n - 1个元素调用make_heap()函数

    ----------------------------------------------------------------------------------------------------------------------------------------------

    push_heap

    push_heap()用于把数据插入到堆中,其意义与make_heap()的相同

    push_heap()前,请确保已经把数据通过q.push_back()传入q中

    ------------------------------------------------------------------------------------------------------------------------------------------------

    sort_heap

    sort_heap()是将堆进行排序,排序后,序列将失去堆的特性(子节点的键值总是小于或大于它的父节点)

    大顶堆sort_heap()后是一个递增序列,小顶堆是一个递减序列

  • 相关阅读:
    C# comboBox实现省市两级联动(winform)
    Alter用法
    封装SQLHelper
    杨中科版C#射击游戏
    C# TXT文件导入至数据库
    C# 手机号码归属地查询
    C#中从数据库导出至txt
    解决C#中txt文档导入数据库时,中文显示乱码的问题
    第一篇博文与技术无关 纯瞎扯
    全国省市数据库
  • 原文地址:https://www.cnblogs.com/xpylovely/p/15215792.html
Copyright © 2011-2022 走看看