
数据结构
文章平均质量分 87
勇敢的小刀
一直在努力学习中!!
展开
-
二叉堆算法具体实现细节- Java实现
前言:之前在学习二叉堆算法时,感觉自己明白了。但是当我自己去写代码的时候,或者回想的时候,却很难系统的描述出来。在仔细研究源码之后,发现了一些之前没有发现的新东西,特地,记录下来,供大家参考。 文章目录二叉堆原理二叉堆的应用二叉堆操作具体实现 二叉堆原理 二叉堆类似于完全二叉树。不过与二叉树不同之处在于,二叉堆底层是数组,其左右子节点和父节点的关联是通过索引建立。例如当前节点的元素为arr[index],如果该元素有子节点,那么左子节点为arr[2*index + 1], 右子节点为arr[2*inde.原创 2021-03-04 14:32:43 · 392 阅读 · 0 评论 -
深入思考HashMap细节
前言:很多文章都讲解过HashMap,但是仅仅从代码层面讲解了实现过程。对于代码里面参数的设计和逻辑背后的原因很少做解释。因此本文主要的目的,不是将所有代码一一讲解,而是从理性和背后的逻辑去分析代码为何这样做以及参数设置的原因。 为了更加理解HashMap里面的细节,我会通过提问的方式,让你带着问题去思考,这样你会收获更多 1.HashMap为什么访问数据快? 原因在于HashMap存储数据的方式为桶位数组和链表(或红黑树)。通过计算key的hash值hashValue,并与n-1进行与&&am.原创 2021-02-26 16:30:25 · 229 阅读 · 0 评论