天天看点

二叉堆 binary heap (2) 利用小根堆求最大 top k 优先队列 PriorityQueue

使操作被快速执行的性质是堆序(heap order)性. 由于我们想要快速地找出最小元,因此最小元应该在根上.

类似的,可以声明一个max堆,找到和删除最大元

     在一个堆中,对于每一个节点X,X的parent中的关键字<=X中的关键字, 根节点除外(它没有parent).

* Heap/BinMinHeap.php

* Heap/TopK.php

* util/Comparator.php

* autoload.php

* index.php

* test

$ php index.php 

[{"char":"e","freq":16},{"char":"f","freq":45}]

[{"char":"f","freq":45},{"char":"g","freq":50}]

{capacity: 2, size: 2, elements: [{"char":"f","freq":45},{"char":"g","freq":50}]}

THESPLPRIORITYQUEUECLASS

UYU