【Java】 用PriorityQueue实现最大最小堆
发布日期:2021-06-29 19:47:11 浏览次数:3 分类:技术文章

本文共 604 字,大约阅读时间需要 2 分钟。

PriorityQueue(优先队列),一个基于优先级堆的无界优先级队列。

实际上是一个堆(不指定Comparator时默认为最小堆),通过传入自定义的Comparator函数可以实现大顶堆。

PriorityQueue
minHeap = new PriorityQueue
(); //小顶堆,默认容量为11PriorityQueue
maxHeap = new PriorityQueue
(11,new Comparator
(){
//大顶堆,容量11 @Override public int compare(Integer i1,Integer i2){
return i2-i1; }});

PriorityQueue的常用方法有:poll(),offer(Object),size(),peek()等。

  • 插入方法(offer()、poll()、remove() 、add() 方法)时间复杂度为O(log(n)) ;
  • remove(Object) 和 contains(Object) 时间复杂度为O(n);
  • 检索方法(peek、element 和 size)时间复杂度为常量。

转载地址:https://darkness.blog.csdn.net/article/details/115600241 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】49. 丑数
下一篇:JAVA中的Set(HashSet,LinkedHashSet,TreeSet)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月11日 16时40分34秒