【Python】堆(heap)的基本操作

#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

你可能感兴趣的:(python)