微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java优先级队列如何工作?

如何解决Java优先级队列如何工作?

我似乎找不到任何信息来回答我的问题。因此,Java PriorityQueue是使用堆构建的。堆的插入和删除时间为O(logn),因此,如果我要进行的堆排序为O(nlogn)。

但是在创建堆期间,它只需要O(n)时间。所以可以说我把线放在

PriorityQueue<Character> heap = new PriorityQueue<>(list); 

Java是使用值构建数据结构,以便使其O(n)还是随后插入以便使其O(nlogn)?

解决方法

您随时可以检查来源:http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/PriorityQueue.java

从未排序的列表中初始化它时,它使用O(n)heapify方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。