优先级队列_学习记录

优先级队列_学习记录

【例子】:

在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());

猜你喜欢

转载自blog.csdn.net/weixin_37770023/article/details/81505049
今日推荐