ACM 优先队列和堆
来源:互联网 发布:淘宝官网电脑版 编辑:程序博客网 时间:2024/06/05 03:54
//heapint sz = 0;int heap[maxn];void push(int x){ int i = sz++; 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 _min = heap[0];//最小值 int last = heap[--sz];//提到根的值 int i = 0; int a, b; while(i*2+1 < sz){ a = i * 2 + 1; b = i * 2 + 2;//比较儿子的值 if(b < sz && heap[b] < heap[a]) a = b; if(last <= heap[a]) break;//如果已经没有大小颠倒则退出 heap[i] = heap[a];//把儿子的数值提上来 i = a; } heap[i] = last; return _min;}
阅读全文
0 0
- ACM 优先队列和堆
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆和优先队列
- 堆排序和 优先队列
- 堆排序和优先队列
- 数据结构-堆和优先队列
- 优先队列和堆排序
- 优先队列和堆排序
- 优先队列和二叉堆
- 二叉堆和优先队列
- 优先队列和堆排序
- [模板]堆和优先队列
- 关于动画过渡(Transition)
- 阿里巴巴 JAVA 开发手册
- hbase 源代码分析 (8) delete 过程 详解
- HDU5816 Hearthstone
- LeetCode(1) Two Sum
- ACM 优先队列和堆
- JavaScript基础
- jquery 无new 思想
- 22.系统广播-短信
- Java经典排序算法之冒泡排序
- 思绪整理
- sql
- php yii伪静态
- PAT b1041-b1045题解