年度博客排行
-
第1名
青否云后端云 -
第2名
zw7534313 -
第3名
大家都说我很棒 - liyihz2008
- wy_19921005
- gengyun12
- hbxflihua
- e_e
- luxurioust
- dbagirl
- zysnba
- Alsmile
- robotmen
- gaozzsoft
- jywhltj
- cpongo1
- leslie26
- qepwqnp
- zhangdaiscott
- 解宜然
- cuityang
- sichunli_030
- gashero
- fantaxy025025
- 淡看人生
- ranbuijj
- gdpglc
- ssydxa219
- wallimn
- vipbooks
- hanbaohong
- jickcai
- johnsmith9th
- javashop
- appalese
- gaojingsong
- weiyides
- zhangyi0618
- java-007
- AVI
- laiyangdeli
- lyongq04
- xpenxpen
- liunancun
- 龙哥IT
- conkeyn
- nychen2000
- lyndon.lin
- panshunchang
- ouanui
最新文章列表
java使用小根堆实现优先级队列的几种方式
写在之前
1.自定义实现采用数组作为内部数据结构
2.内部数组通过grow方法进行扩容,每次只是简单的扩展为原来的2倍
3.集中实现方式的主要区别在于siftDown方法
4.以下给出关键代码,更多详细信息请看附件源码
实现方式一(递归实现)
关键代码:
@Override
protected void siftDown(int index)
{
...
jdk源码分析PriorityQueue
一、结构
PriorityQueue是一个堆,任意节点都是以它为根节点的子树中的最小节点
堆的逻辑结构是完全二叉树状的,存储结构是用数组去存储的,随机访问性好。最小堆的根元素是最小的,最大堆的根元素是最大的
这是一个最小堆的逻辑结构
这是他的存储结构,是用数组来存储的。
可以看到,i下标的数组元素,他的父节点是(i-1)/2,他的左右节点分别是i*2+1,i*2+2
二、容量 ...