优先级队列_学习记录
【例子】:
在1,000,000个元素中选出前100名?
在N个元素中选出前M个元素
排序? nlogn
使用优先队列 nlogm
优先队列的主要操作:
- 入队
- 出队(取出优先级最高的元素)
小顶堆:
//小顶堆
PriorityQueue queue = new PriorityQueue();
queue.offer(5);
queue.offer(1);
queue.offer(2);
queue.offer(3);
System.out.println(queue.peek());
大顶堆:
//小顶堆
PriorityQueue queue = new PriorityQueue(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o2.compareTo(o1);
}
});
queue.offer(5);
queue.offer(1);
queue.offer(2);
queue.offer(3);
System.out.println(queue.peek());