1,最小堆的创建
要创建堆,请使用初始化为[]的列表,或者可以通过函数heapify()将填充的列表转换为堆
2,主要函数
heappush(heap,item) | 将值项推入堆,保持堆不变 |
heapq.heappop(heap) | 弹出并从堆中返回最小的项,从而保持堆不变。如果堆为空,则会引发IndexError。要访问最小的项目而不弹出它,请使用heap [0]。
|
heapq.heappushpop(heap,item) | 将项目推入堆中,然后弹出并从堆中返回最小的项目。组合的操作比heappush()+heappop()更有效地运行。
|
heapq.heapify(x) | 将列表x在线性时间内就地转换为堆。 元素的排列顺序并不像看起来那么随意。它们虽然不是严格排序的,但必须保证一点:位置i处的元素总是大于位置i // 2处的元素 |
heapq.heapreplace(heap,item) | 把最小的元素替换
|
heapq.nlargest(n,iterable,key=None) | 从iterable定义的数据集中返回包含n个最大元素的列表。 key(如果提供)指定一个参数的功能,该参数用于从iterable中的每个元素中提取比较键 nsmallest同理 |