
堆
.Passion
欢迎来看我的博客 ,原博客地址: https://www.cnblogs.com/lyr-2000/
现决定重新启用博客园的博客,一部分比较浅的笔记将写到这个博客上
欢迎打扰,另外,个人博客网站也搭建成功,欢迎打扰:
http://www.itshare.club/
-
原创 原地堆排序
大家可以看一下我上一篇文章使用的堆排序堆排序我之前使用的堆排序是要开 一个长度为 N的数组,事实上,我们可以把原数组看成一个堆,也就是说我们不用开一个数组,而是在原地排序怎么说呢…还是给我一个数组,我对这个数组进行Heapify 操作,这样就得到了一个大根堆(脑袋是最大的) ,然后我们把 最大的那个数 和数组的最后一个元素交换,这样一来,数组末尾最大那个数就不用考虑了至此,堆排序的一个...2019-08-31 20:15:0360
0
-
原创 堆排序
该文章代码配合我的上一篇文章:优先队列的出队操作优先队列的入队操作堆排序第一版本 public static void main(String[] args) { int[] arr={ 1,3,7,5,4,-1,999,58,5,8,2 }; HeapSort(arr); for (int...2019-08-31 17:41:0157
0
-
原创 优先队列的出队操作
要点:了解 shiftDown了解优先队列 出队的机制上一篇文章中我写了优先队列的入队操作,入队shiftUp,出队shiftDown看代码效果:首先,在优先队列插入50个元素,执行poll操作,也就是出队把队顶的一个元素拿出如图,2个97只剩下一个对于一个50个元素的大根堆,只要出队,就变成49个元素,这里我使用 count–,因此数组长度并不是真的变成了49个,而是模拟...2019-08-31 16:00:05378
0
-
原创 优先队列入队操作
效果展示:这里我们从数组的一号位置开始存储那么在二叉树中的规律是parent(i) = i/2;leftChild of (i) = 2i;rightChild of (i) = 2i+1;如上图所示,我们发现,连线的间隔越是往后,距离就越大,而且正好是2的倍数,间隔呈现2,4,8那样增长由于 parent(i) = i/2 ,如上图所示, 15位置是 10 ,那么他的父亲节点位...2019-08-31 15:19:08232
0