PriorityQueue 小根堆和大根堆的讨论
来源:互联网 发布:免费仓管软件 编辑:程序博客网 时间:2024/06/15 04:54
堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。
根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。
根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。
借助类PriorityQueue 可以实现小根堆和大根堆。
对于PriorityQueue ,观察帮助文档,可以发现,这是jdk1.5以后引入的,
对它的说明如下:An unbounded priority queue based on a priority heap,The elements of the priority queue are ordered according to their natural ordering, or by a Comparator
provided at queue construction time, depending on which constructor is used.
The head of this queue is the least element with respect to the specified ordering.
由此可知,它容量没有界限,且默认排序是自然排序,队头元素是最小元素,故我们可以拿来作为小根堆使用。
(要注意:默认的PriorityQueue并非保证了整个队列都是有序的,只是保证了队头是最小的)
对于大根堆,就要借助于comparator比较器,来实现大根堆。(使用默认的初始容量:11)
这样就实现了,大根堆的功能。
阅读全文
0 0
- PriorityQueue 小根堆和大根堆的讨论
- java借助PriorityQueue实现小根堆和大根堆
- PriorityQueue里面的的minheap和maxheap
- java Comparator接口和PriorityQueue优先级队列的使用
- PriorityQueue的使用
- PriorityQueue的内部实现
- Java的priorityQueue
- PriorityQueue的使用
- PriorityQueue 的用法
- JDK 里的 PriorityQueue
- PriorityQueue的BinaryHeap实现
- Java PriorityQueue的使用方法
- PriorityQueue的要点
- 和前辈的讨论
- PriorityQueue
- PriorityQueue
- priorityqueue
- PriorityQueue
- ORB-SLAM(1) --- 让程序飞起来
- springboot+poi导出指定格式Excel模板详解+Demo
- 子类继承父类放法访问权限的问题
- 排序排排排排排!
- 网络编程复习(二):JDK1.5之前的伪异步BIO编程
- PriorityQueue 小根堆和大根堆的讨论
- css与 js动画 优缺点比较
- 一行代码理解泛型
- linux——进程替换
- simhash与重复信息识别
- sqlserver表的数据类型
- Redis学习06——存储字符串集合(set)
- 一个幽灵
- Java线程安全的容器与介绍