1、python中如何调用小顶堆?
知道小顶堆的实现原理,自己写一个也不复杂,工作中方便起见,更多的是直接调用堆。python可以使用heapq来实现。heapq默认是小顶堆。
heapq常用的方法
函 数 | 描 述 |
---|---|
heappush(heap, x) | 将x压入堆中 |
heappop(heap) | 从堆中弹出最小的元素(栈顶元素) |
heapify([1,2,3]) | 让列表具备堆特征 |
heapreplace(heap, x) | 弹出最小的元素(栈顶元素),并将x压入堆中 |
nlargest(n, iter) | 返回iter中n个最大的元素 |
nsmallest(n, iter) | 返回iter中n个最小的元素 |
在python中调用小顶堆的步骤
2、python中如何调用大顶堆?
python没有可以直接使用的大顶堆。但是我们可以给列表中的元素加上负号,是的变成小顶堆,再在取数的时候再将其添加负号,就将小顶堆变成了大顶堆。