1.

代码如下(示例):

priority_queue < int >默认构建的是一个大根堆,所以每次从头取数据得到的是一个从大到小的队列排序.
priority_queue< int> 实际上等价于 priority_queue<int, vector, less< int>>。


#include <iostream>
#include <queue>
using namespace std;void common_sort()
{int source_data[10] = {3, 5, 8, 1, 10, 2, 9, 15, 13, 16};// 默认大根堆,实现由大到小排序priority_queue<int> q;for (auto n : source_data) q.push(n);while (!q.empty()) {cout << q.top() << endl;q.pop();}
}

2.

小根堆: priority_queue<int, vector< int>, greater< int>> q;

代码如下(示例):


#include <iostream>
#include <queue>
using namespace std;void max_k_num()
{int source_data[10] = {3, 5, 8, 1, 10, 2, 9, 15, 13, 16};int k = 5;// 小根堆priority_queue<int, vector<int>, greater<int>> q;for (auto n : source_data) {if (q.size() == k) {if (n > q.top()) {q.pop();q.push(n);}}else q.push(n);}while (!q.empty()) {cout << q.top() << endl;q.pop();}
}

C++ 优先队列priority_queue,如何定义大小根堆相关推荐

  1. 算法笔记-堆相关、堆的定义、大小根堆、算法程序实现、堆的算法题、C#写法

    内容概述 1,堆结构就是用数组实现的完全二叉树结构 2,完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 3,完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 4,堆结构的heaplnsert与h ...

  2. C++定义结构体大小根堆的方法

    C++定义结构体大小根堆的方法 #include <iostream> #include <queue> #include <string> using names ...

  3. 大根堆和小根堆的区别

    大根堆和小根堆的区别 文章转自:https://blog.csdn.net/weixin_37197708/article/details/79546535 堆的概念 堆实际上是一棵完全二叉树,其任何 ...

  4. 由一维数组创建小根堆

    1.结构体和头文件: #include<iostream> #include<vector>using namespace std;struct MinHeap //也可以不用 ...

  5. c语言 topk算法,scala写算法-用小根堆解决topK

    topK问题是指从大量数据中获取最大(或最小)的k个数,比如从全校学生中寻找成绩最高的500名学生等等. 本问题可采用小根堆解决.思路是先把源数据中的前k个数放入堆中,然后构建堆,使其保持堆序(可以简 ...

  6. 剑指Offer之寻找数据流中的中位数【包含大顶堆小顶堆解释】

    数据流中的中位数 题目描述 题解 最小堆和最大堆解释 参考链接 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶 ...

  7. 小根堆创建,插入,删除,排序等操作图解

    堆:是用数组实现的完全二叉树,没有使用指针,根据数组的下标进行构建堆 eg:parentIndex = i;-> leftIndex = 2i+1;rightIndex = 2i+2; 堆的分类 ...

  8. 堆(大根堆、小根堆)

    完全二叉堆 堆又可称之为完全二叉堆.这是一个逻辑上基于完全二叉树.物理上一般基于线性数据结构(如数组.向量.链表等)的一种数据结构. 完全二叉树的存储结构 学习过完全二叉树的同学们都应该了解,完全二叉 ...

  9. 【数据结构】堆,大根堆,小根堆,优先队列 详解

    目录 堆 1.堆的数组实现 2.小根堆 3.大根堆 4.优先队列 例题 1.SP348 EXPEDI - Expedition(有趣的贪心思路,优先队列) 2.合并果子 堆 要了解堆之前,请先了解树, ...

最新文章

  1. 经典再读 | NASNet:神经架构搜索网络在图像分类中的表现
  2. linux   RedHat AS5(x86_64)安装oracle10g
  3. 熟悉Linux的环境实验报告,实验1 熟悉Linux开发环境 实验报告
  4. v-bind 属性绑定
  5. vue学习笔记-02-前端的发展历史浅谈mmvm设计理念
  6. java访问同一个变量_java – 从另一个类访问变量
  7. 软考系统架构师笔记-案例分析重点(一)
  8. iOS开发工程师笔试题
  9. 【Java】javaWeb中的三大组件与八大监听器
  10. C++笔记(6)友元
  11. 八、Android性能优化之电量优化(二)
  12. 达梦数据库工具使用说明
  13. LFM的脉冲压缩,即匹配滤波器的产生
  14. python实现计算标准偏差函数
  15. Linux文字游戏制作软件,小精灵美化app
  16. 英特尔居然也来搞GTA5美化MOD了……?
  17. 新元宇宙每周连载《地球人奇游天球记》第十五回土星种菜
  18. VUE之多元素组件过渡+动画封装
  19. 推荐系统实践(三)ICF和UCF
  20. 腾讯题目——求磁头平均寻道长度

热门文章

  1. 您的计算机程序脱机,安捷伦脱机程序打不开,电脑脱机状态打不开
  2. Android 动画总结
  3. 计算机回收站设置大小,电脑回收站无法调整容量的大小怎么办?
  4. L1-040 最佳情侣身高差(Python3)
  5. php mysql条数不对_为什么PHP从MySQL中取出的数据总是少了一条?
  6. 七万字,151张图,通宵整理消息队列核心知识点总结!这次彻底掌握MQ!
  7. TFN F7 M1 光时域反射仪 多模OTDR 光纤测试仪 高精度 触摸屏 波长850/1300nm
  8. 计算机设计大赛指导老师的申报书,附件大赛作品申报书.DOC
  9. (原創) 如何自行在ThinkPad X61安裝Windows XP Professional SP3? (NB) (ThinkPad) (X61) (OS) (Windows)...
  10. 计算机教室网络平面示意图,计算机机房平面布置图.doc