python-heapq库的使用


一、heapq库简介

heapq 库是Python标准库之一,提供了构建小顶堆的方法和一些对小顶堆的基本操作方法(如入堆,出堆等),可以用于实现堆排序算法。

二、使用heapq创建堆

1. heappush(heap, num),数据推入

先创建一个空堆,然后将数据依次添加到堆中。每添加一个数据后,heap都满足小顶堆的特性。
其中,heap为待操作列表,num为待插入数字

# coding=utf-8
import heapq
array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
heap = []
for num in array:
    heapq.heappush(heap, num)
print("heap: ", heap)
# heap:  [5, 7, 21, 15, 10, 24, 27, 45, 17, 30, 36, 50]

2. heapify(array),将数组堆中的最小元素弹出

3. heapify(array),直接将现有数据列表调整成一个小顶堆