2020年3月18日
摘要: 1、优先队列的经典问题,在1000000个元素中选出前100名元素,题型模式如在N个元素中选出前M个元素。 在这里面的关键就是M远远小于N的,如果M是1,是很简单的,只需要遍历一遍,此时时间复杂度是O(n)级别的,但是此时要选出前M个元素,如果M不等于1的话,就有点麻烦了,此时也可以将100万个元素 阅读全文
posted @ 2020-03-18 11:40 别先生 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 1、优先队列的底层实现可以使用最大堆进行实现,由于优先队列本身就是一个队列,所以可以复用队列的接口。 2、首先,将定义好的Queue接口,创建好,可以让优先队列实现该接口之后,实现这些接口的方法。 1 package com.queue; 2 3 /** 4 * 5 */ 6 public inte 阅读全文
posted @ 2020-03-18 10:01 别先生 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 树结构的不同形态,堆、线段树、字段树、并查集,四种不同的树形数据结构。 1、优先队列,本身就是一种队列。普通队列,先进先出,后进后出。优先队列,出队顺序和入队顺序无关,和优先级有关,优先级高者先得,优先级高的先出队。 类别 入队 出队(拿出最大元素) 普通线性结构(数组、链表等) O(1),直接将新 阅读全文
posted @ 2020-03-18 09:39 别先生 阅读(322) 评论(0) 推荐(0) 编辑