带堆排序的优先级列表(Java)

时间:2016-04-09 00:43:37

标签: java heap heapsort

我想知道是否存在使用堆排序方法的优先级列表的Java本机实现。如果没有,是否有任何推荐的替代方案?

1 个答案:

答案 0 :(得分:1)

PriorityQueue的javadoc说:

  

“基于优先级堆的无界优先级队列。”

源代码PriorityQueue(Java 6以后)有这样的评论:

  

“优先级队列表示为平衡二进制堆...”

从技术上讲,这不是Heapsort。但是,标准的Heapsort算法不适用于优先级队列:它是非增量的(O(NlogN))。 PriorityQueue做的是增量(每个队列插入O(logN))。

有关详细信息,请阅读源代码。评论很好。