堆模板(小根堆)
来源:互联网 发布:mill9.1编程入门教程 编辑:程序博客网 时间:2024/06/15 00:01
从小到大排序
#include <cstdio>#include <iostream>#define fo(i,a,b) for (int i=a;i<=b;i++)#define N 200005 using namespace std;int a[N],num=0,n;void Up(int x){ for (;x>1 && a[x] < a[x >> 1];x >>= 1) swap(a[x],a[x >> 1]);}void Down(int x){ while (2*x <= num && a[x] >= a[2*x] || (2*x+1 <= num) && a[x] >= a[2*x+1]) { int y = 2 * x; if (y+1 <= num && a[y+1] < a[y]) y++; swap(a[x],a[y]); x=y; }}void Insert(int x){ a[++ num] = x; Up(num);}void Delete(int x){ if (a[num] > a[x]) a[x] = a[num --],Down(x); else a[x] = a[num --],Up(x);}int main(){ scanf("%d",&n); fo(i,1,n) scanf("%d",&a[i]),Insert(a[i]); fo(i,1,n) printf("%d\n",a[1]),Delete(1); }
1 0
- 堆模板(小根堆)
- 模板,堆,小根堆
- 堆模板
- 堆模板
- 堆模板
- 堆模板
- 堆模板
- [模板]堆
- 【模板】堆
- 堆模板
- 堆模板
- 堆【模板】
- 【ACM模板】堆排序
- 堆排序模板
- C++堆排序模板
- 堆排序【模板】
- 堆排序模板
- 堆排序模板
- C++vector
- java连接mariaDB的设置
- Fast R-CNN: Fast Region-based Convolutional Networks for object detection(阅读)
- 第六周项目2----建立链队算法库
- ubuntu14.04笔记
- 堆模板(小根堆)
- 读书与做人 - 笔记
- 【伸展树】目录
- 国庆假期Linux基础复习回顾
- 手势识别(二)--单目手势识别算法总结
- (CSS+盒模型+dl列表)实现 毒霸首页中模块部分的布局
- 软件工程网络工程第二次训练(AC代码和详细解释)(C语言描述)
- 5号
- 面向对象_抽象类的引入