python创建堆
可以通过列表转堆实现,也可以逐一入堆实现,python heapq构建的是最小堆,如果需要最大堆可以元素取-,用最小堆来等价
import heapq
arr = [1, 3, 2, 4]
heapq.heapify(arr) #将list转为堆
heapq.heappush(arr, 9) #将9入堆
heapq.heappop(arr) #最小元素出堆
heapq.heapreplace(arr, 11) #最小元素出堆,然后11入堆
所有方法都维护最小堆数据结构的定义,维护集合最值
更多操作可见如下官方文档,heapq包中相关堆的操作写的非常清楚: