Debug > python中heap的使用

堆的定义

堆是一种特殊的数据结构,它的通常的表示是它的根结点的值最大或者是最小。

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 个最小元素组成的列表。

To see I can not see, to know I do not know.
原文地址:https://www.cnblogs.com/aluomengmengda/p/15801234.html