堆算法

作者: YingtaoWen | 来源:发表于2018-05-11 10:33 被阅读0次
函数 作用
make_heap 构建大顶锥
make_heap(v.begin(), v.end(), greater<int>()); 构建小顶锥
pop_heap 将堆顶元素移动到last-1位置上
push_heap 在加入新元素后,重建堆
sort_heap 排序(从小到大)

示例代码

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    int a[] = {10,20,30,5,15};
    vector<int> v(a,a+5);
    vector<int>::iterator it;

    //make_heap
    make_heap(v.begin(),v.end());
    cout << "make_heap" << endl;
    for(it=v.begin();it!=v.end();it++){
     cout << *it << ' ';
    }
    cout << endl;

    //pop_heap
    cout << "pop_heap" << endl;
    pop_heap(v.begin(),v.end());
    for(it=v.begin();it!=v.end();it++){
     cout << *it << ' ';
    }
    cout << endl;

    //sort_heap
    cout << "sort_heap" << endl;
    sort_heap (v.begin(),v.end());
    for(it=v.begin();it!=v.end();it++){
     cout << *it << ' ';
    }
    cout << endl;
    make_heap(v.begin(),v.end());

    //push_heap
    cout << "re_make_heap" << endl;
    for(it=v.begin();it!=v.end();it++){
     cout << *it << ' ';
    }
    cout << endl;
    v.push_back(99);
    push_heap (v.begin(),v.end());
    cout << "push_heap" << endl;
    for(it=v.begin();it!=v.end();it++){
     cout << *it << ' ';
    }
    cout << endl;
    return 0;
}

结果

图片.png

相关文章

  • 堆算法

    示例代码 结果

  • 堆算法

  • 算法之堆算法

    堆的定义如下:n个元素的序列{k0,k1,...,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。" ki...

  • 堆相关算法

    转发 C 堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。...

  • 堆调整算法

    堆调整算法 思路 算法将获取到一组数据的最大值(针对大顶堆)或最小值(针对小顶堆)。 基本思想 通过堆排序的调整算...

  • heapq : 堆队列算法

    heapq : 堆队列算法 Source code: Lib/heapq.py 介绍 这个模块提供了堆队列算法的实...

  • Linux内存管理---伙伴堆算法(1)

    什么是伙伴堆算法 伙伴堆算法(也叫伙伴系统,buddy system)是Linux系统中的一种动态的内存管理算法 ...

  • [underscore 源码学习] 乱序数组 - 洗牌算法

    洗牌算法 算法思路在宏观上可以概括为:将集合视为牌堆,不停地从牌堆中抽牌构成新的牌堆,直至新牌堆的牌数到达预设数量...

  • 算法系列--堆

    0.引言 堆是一种比较常见的数据结构,堆排序也是面试时会经常遇到的问题,今天就分析一下堆。 1.堆结构 堆是一种类...

  • 拙劣算法:堆建立

    说明 某一个节点i父节点,子节点公式:父节点=(i -1)/2左子节点=2i+1右子节点=2i+1 heapify...

网友评论

      本文标题:堆算法

      本文链接:https://www.haomeiwen.com/subject/wtaxdftx.html