最后更新于
最后更新于
heapq包提供了高效的堆算法(也称为优先队列算法).
堆, 即一种二叉树结构, 其中每个父结点的值都小于或等于它的两个子结点, 两个子结点之间大小没有要求. 使用数组存储堆结构时, 对于第个结点, 其左右子结点的索引分别为与.
堆分为最大堆和最小堆, heapq提供的是固定的最小堆, 即堆顶元素heap[0]
为整个堆中的最小值.
heapq
使用python中的list
数据结构来构建堆. 有两种创建堆的方式:
初始化一个空的list
: []
, heapq
提供的方法, 如push
, pop
, replace
等方法, 都需要传入一个list
, 整个list
作为堆来使用
使用heapify(list)
方法, 将现有的一个list整理成堆
除了放入纯数字, 可以带入一些业务信息
参考文档.