#Python-堆(heap)的基本操作
import heapq #载入heap库,heap指的是最小堆
使数组转化为堆
heapq.heapify(list)
heap = [1,3,4,2,6,8,9]
heapq.heapify(heap)
# heap = [1,2,4,3,6,8,9]
为heap增加元素
heapq.heappush(heap,item)
heap = [1,3,4,2,6,8,9]
heapq.heappush(heap, 2)
# heap = [1,3,4,2,6,8,9,2]
删除堆顶(即最小值)
heapq.heappop(heap)
heap = [1,3,4,2,6,8,9]
heapq.heappop(heap)
# heap = [3,2,4,9,6,8] #删除堆顶后将堆尾放到堆顶,然后下沉
删除最小值并添加新值
heapq.heapreplace(heap, item)
heap = [1,3,4,2,6,8,9]
heapq.heapreplace(heap, 4)
# heap = [3,2,4,4,6,8,9]#删除堆顶后将新元素放到堆顶,然后下沉
查堆中最大n个数
heapq.nlargest (n, heap)
heap = [1,3,4,2,6,8,9]
result = heapq.nlargest (2, heap)
# result = [9,8]
查堆中最小n个数
heapq.nsmallest(n, heap) #查询堆中的最小元素,n表示查询元素个数
heap = [1,3,4,2,6,8,9]
result = heapq.nsmallest (2, heap)
# result = [1,2]
参考链接
https://blog.csdn.net/this_is_me_anyway/article/details/79755118
版权声明:本文为a529975125原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。