最大最小堆堆顶元素
来源:8-8 Java中的PriorityQueue
厥~~~
2019-10-03
老师,最大堆堆顶元素是优先级最高的,每次poll()或者remove()都是取出优先级最高的元素。
最大堆堆顶元素是优先级最小的的,每次poll()或者remove()都是取出优先级最小的元素。
所以堆顶元素的大小不是按照元素本身的大小,是按照优先级来排序的。
最小堆堆顶元素是优先级最小的,每次删除是取优先级最小的。
最大堆堆顶元素是优先级最大的,每次删除是取优先级最大的。
上面判断对么?
写回答
1回答
-
我被你的描述搞晕了。
整体来讲,最大堆堆顶是最大的元素,最小堆堆顶是最小的元素。我的建议是,把最大和最小,与优先级这个概念分开来看。
因为大多数时候,大小是有绝对的概念的。但是优先级不是。比如捐款,富人捐得多一些,所以,你的钱越多,优先级越高;比如扶贫,穷人获得的资助多一些,所以你越穷,优先级越高。因此,优先队列背后可以是最大堆,也可以是最小堆,看你的应用场景。
我觉得我上面说的很清楚,大小和优先级是两个尺度的概念,你应该可以理解。但如果你问我的是一个考试题目,那我也不知道。需要问出题人。应试和理解知识完全不同。考试分数高的人可能对考试的知识完全不理解;对知识理解充分的人也不一定考试分数高。
继续加油!:)
112019-10-05