优先队列 -- 大顶堆,小订堆
什么是堆(Heap)
优先队列(Priority Queue):特殊的”队列”,取出元素的顺序优先权的大小,而不是元素在队列的先后顺序;
1.使用完成二叉树;
2.数组表述;
堆中的路径(25 分)
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。
输入格式:
每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。
输出格式:
对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。
输入样例:
5 3
46 23 26 24 10
5 4 3
输出样例:
24 23 10
46 23 10
26 10
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000
#define MINH -10001
int H[MAXN],size;
void Create(){size = 0;H[0] = MINH;
}void Insert(int X)
{int i;for(i=++size;H[i/2]>X;i/=2){H[i]=H[i/2];}H[i] = X;}int main()
{int M,N;scanf("%d%d",&M,&N);Create();int input;for(int i=1;i<=M;i++){scanf("%d",&input);Insert(input);}for(int i=0;i<N;i++){scanf("%d",&input);printf("%d",H[input]);while(input>1){input/=2;printf(" %d",H[input]);}printf("\n");}return 0;
}
优先队列 -- 大顶堆,小订堆相关推荐
- 大顶堆小顶堆优先队列
特性和应用场景 大顶堆小顶堆,也叫优先队列,是一种基于数组+平衡二叉树的数据结构. 主要用于排序,增减操作的速度较快(O(logn)) 适合带有优先级的排序场景,比如处理订单的时候,VIP用户的优先级 ...
- priority_queue实现大顶堆和小顶堆
升序队列,小顶堆 priority_queue <int,vector<int>,greater<int> > q; 降序队列,大顶堆 priority_queue ...
- 优先队列默认是小顶堆吗_堆和堆傻傻分不清?进来!包教会!
什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则很简单:就是先进先出:但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶. 这也很容 ...
- NO29、最小的K个数(应该记住大顶堆和小顶堆的区别与联系,并不难)
29.最小的K个数 应该记住大顶堆和小顶堆的区别与联系,并不难 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 示例1 输入 ...
- C++大顶堆和小顶堆
C++大顶堆和小顶堆 原理 大顶堆 小顶堆 大顶堆和小顶堆对比图 大顶堆和小顶堆的实现代码 vector和push_heap.pop_heap实现堆 建堆 调整堆 priority_queue实现堆 ...
- c语言标准模板小顶堆,堆排序(大顶堆、小顶堆)----C语言
堆排序 之前的随笔写了栈(顺序栈.链式栈).队列(循环队列.链式队列).链表.二叉树,这次随笔来写堆 1.什么是堆? 堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被 ...
- leetcode之大顶堆和小顶堆
leetcode295解法: class MedianFinder { private PriorityQueue<Integer> large; private PriorityQueu ...
- 堆排序之 大顶堆和小顶堆 c语言
百度得到的堆定义如下: 堆的定义如下:n个元素的序列{k1,k2,ki,-,kn}当且仅当满足下关系时,称之为堆. (ki <= k2i,ki <= k2i+1)或者(ki >= k ...
- 剑指offer:数据流中的中位数(小顶堆+大顶堆)
1. 题目描述 /**如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的 ...
最新文章
- BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)
- 史上最强GAN被谷歌超越!标注数据少用90%,造假效果却更逼真
- java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处
- React源码学习——ReactClass
- Windows核心编程 第二十章 DLL的高级操作技术
- 关于数位动规(入门到进阶,难度中档)
- oledb 获取所有表的名字和列名
- JavaScript实现按位的isPowerOfTwo算法(附完整源码)
- DGL教程【三】构建自己的GNN模块
- 402.移掉K位数字,使得剩下数字最小
- sql 触发器的常用语句(转)
- lucene 建索引
- ApiCloud数据Url请求
- 修改整个app的字体
- sql的 lpad函数
- 下载 MIUI任意型号卡刷包/线刷包
- 吃豆豆--Java小游戏
- dBm、mw、dB三者之间的关系
- 2018-03-08,模板消息推送,全代码,多多指教
- opencv-11-中值滤波及自适应中值滤波