本文主要是介绍python中的小根堆模块heapq,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
heapq模块
- heapify(list)建立小根堆
- heappush(heap, item)推入元素到堆中
- heappop(heap)从堆中弹出元素
- heapreplace(heap,item)弹出并返回堆中最小元素,同时推入元素
- nlargest(n,heap,key=None)返回堆中前n个最大的元素
- nsmallest(n,heap)
小根堆由二叉树表示,其中每个节点均小于其左右节点的值
heapify(list)建立小根堆
heapq.heapify()以线性时间讲一个列表转化为小根堆
heapq里面没有直接提供建立大根堆的方法,可以采取如下方法:每次push时给元素加一个负号(即取相反数),此时最小值变最大值,反之亦然,那么实际上的最大值就可以处于堆顶了,返回时再取负即可。
heappush(heap, item)推入元素到堆中
heappop(heap)从堆中弹出元素
heapreplace(heap,item)弹出并返回堆中最小元素,同时推入元素
nlargest(n,heap,key=None)返回堆中前n个最大的元素
nsmallest(n,heap)
这篇关于python中的小根堆模块heapq的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!