logical structure of PQ
array representation of PQ
PQ implementation
maxPQ
1 | void add(int n); // insert element to PQ --> stay tuned |
siftup
1 | void siftup() { |
siftdown
1 | void siftdown() { |
add
1 | void add(int n) { |
poll
1 | int poll() { |
PQ application
heapsort
把数组的元素 add
到一个 pq
里, 然后依次 poll
出来, 得到的序列就是排序好了的
heapify
假设一共有 h(=lgN)层, 由于最后一层的节点不必调用 siftdown, 我们只要从倒数第二层开始调用 siftdown 即可
1 | void heapify(int a[]){ |
top \(k\) elements of a stream
1 | if (minPQ.size() < K) |