《数据结构》学习笔记 第10章 优先级队列
1, 需求:根据优先级而不是数据进来的次序进行处理。 2, 优先级队列接口: 3,几种可能的实现: 基于向量/有序向量:部分接口效率有待改进。 基于列表/有序列表:部分接口效率有待改进。 基于BBST:三个接口均可O(logN)复杂度。 但BBST过于强大了,需要查找极值元;不需要维护全序关系,只需偏序即可。 4, 完全二叉堆:借助于完全二叉树,实现优先级队列。 完全二叉树: 完全二叉堆,及其实现: 堆序性:完全二叉堆的灵魂。 堆序性定义:任何一个节点,在数值上,都不会超过他的父亲。 最大元:在根节点处 (内部数组首元素)。 5,完全二叉堆的插入与上滤 效率:渐进意义上 O(logN). 常数意义上,存在改进的空间。 6,完全二叉堆的删除与下滤 效率:渐进意义上 O(logN). Note:每次下滤,做两次比较。 7, 完全二叉堆的批量建堆 自上而下的上滤:O(n), 效率不高。 自下而上的下滤:O(logn) 来源: https://www.cnblogs.com/sanlangHit/p/12258461.html