堆的定义:
堆是一种特殊的数据结构,它的通常的表示是它的根结点的值最大或者是最小。
python中heapq的使用
列出一些常见的用法:
import heapq
heap = []#建立一个常见的堆
heappush(heap,item)#往堆中插入一条新的值
item = heappop(heap)#弹出最小的值
item = heap[0]#查看堆中最小的值,不弹出
heapify(x)#以线性时间将一个列表转为堆
item = heapreplace(heap,item)#弹出一个最小的值,然后将item插入到堆当中。堆的整体的结构不会发生改变。
heappoppush()#弹出最小的值,并且将新的值插入其中
merge()#将多个堆进行合并
nlargest(n , iterbale, key=None)从堆中找出做大的N个数,key的作用和sorted( )方法里面的key类似,用列表元素的某个属性和函数作为关键字
-
heapq.merge(*iterables, key=None, reverse=False):将多个已排序的输入合并为一个已排序的输出,返回已排序值的 iterator。
-
heapq.nsmallest(n, iterable, key=None):从 iterable 所定义的数据集中返回前 n 个最小元素组成的列表。