注意:
heapq是最小堆,也就是说,堆顶元素pq[0]中储存的是最小值,得到的结果是最大的K个值.
-----------------------------------------
Help on module heapq:
NAME
heapq - Heap queue algorithm (a.k.a. priority queue).
FILE
/usr/lib64/python2.4/heapq.py
DESCRIPTION
Heaps are arrays for which a[k] <= a[2*k+1] and a[k] <= a[2*k+2] for
all k, counting elements from 0. For the sake of comparison,
non-existing elements are considered to be infinite. The interesting
property of a heap is that a[0] is always its smallest element.
Usage:
heap = [] # creates an empty heap
heappush(heap, item) # pushes a new item on the heap
item = heappop(heap) # pops the smallest item from the heap
item = heap[0] # smallest item on the heap without popping it
heapify(x) # transforms list into a heap, in-place, in linear time
item = heapreplace(heap, item) # pops and returns smallest item, and adds
# new item; the heap size is unchanged