python 堆

import heapq
python的heapq模块提供了对堆的支持。 heapq堆数据结构最重要的特征是heap[0]永远是最小的元素

常用方法:nlargest(),nsmallest(),heapify(),heappop()

如果需要的个数较小,使用nlargest或者nsmallest比较好

如果需要的个数已经接近了序列长度,使用sorted()[:N]获取前N个数据比较好

如果只需要唯一一个最大或最小值,则直接使用max()或者min()

# heap为定义堆,item增加的元素
heapq.heappush(heap, item)

# 将列表转换为堆
heapq.heapify(list) 

#删除并返回最小值,因为删除的是第一个元素,而这个是最小堆
heapq.heappop(heap) 

heapq.heapreplace(heap.item) 
删除并返回最小元素值,添加新的元素值

heapq.heappushpop(list, item)
判断添加元素值与堆的第一个元素值对比;如果大,则删除并返回第一个元素,然后添加新元素值item; 如果小,则返回item.  原堆不变。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容