优先队列的实现
来源:互联网 发布:心形曲线数控宏编程 编辑:程序博客网 时间:2024/04/26 11:28
STL中有priority_queue可以实现优先队列。
下面的代码是小堆哦,是从小到大的顺序。
#include <stdio.h>#define MAX_N 2001int heap[MAX_N];int size;void push(int x) {int i = size++;int p;while (i > 0) {p = (i - 1) / 2;if (heap[p] < x) {break;}heap[i] = heap[p];i = p;}heap[i] = x;}int pop() {int res = heap[0];int x = heap[--size];int i = 0;int a, b;while (i*2 + 1 < size) {a = i*2 + 1;b = i*2 + 2;if (b < size && heap[b] < heap[a]) {a = b;}if (heap[a] >= x) {break ;}heap[i] = heap[a];i = a;}heap[i] = x;return res;}int main() {int a[] = {8, 4, 3, 5, 6, 7, 9};int i;for (i = 0; i < 7; i++) {push(a[i]);}for (i = 0; i < 7; i++) {printf("%d ", pop());}printf("\n");return 0;}
- 优先队列的实现
- 优先队列的实现
- 优先队列的数组实现
- 优先队列的简单实现
- 优先队列的c++实现
- 索引优先队列的实现
- 优先队列的一种实现
- 索引优先队列的实现
- PriorityQueue 优先队列的实现
- 【算法设计-优先队列】优先队列的实现与操作
- 基于堆的优先队列的实现
- 堆和优先队列的实现
- 优先队列的精简实现(c++)
- 基于堆的优先队列实现
- heap实现的最大优先队列
- 从堆到优先队列的实现
- 优先队列的实现--二叉堆
- 堆排和优先队列的实现
- 求职与做人
- 【OpenCV】SIFT原理与源码分析
- 让人懊恼的面试-看程序员的基本功
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- Unity Api 文档翻译 之Render Texture
- 优先队列的实现
- 【OpenCV】SIFT原理与源码分析:关键点搜索与定位
- 重构rails
- html5画布写的一个键盘游戏(2)
- div 显示隐藏
- 【OpenCV】SIFT原理与源码分析:方向赋值
- ShowWindow函数 delphi
- string和wstring相互转换
- 使用SharpZipLib实现zip压缩