数据结构
光与热
这个作者很懒,什么都没留下…
展开
-
Dijkstra算法
Dijkstra算法是一种求单源最短路的算法,即从一个点开始到所有其他点的最短路。转载 2016-12-24 13:56:10 · 323 阅读 · 0 评论 -
文章标题
已知一组关键字为(39,49,54,38,44,28,68,12,06,77),用除余法构造散列函数,用线性探查法解决冲突构造这组关键字的散列表。 解答:为了减少冲突,通常令装填因子α<l。这里关键字个数n=10,不妨取m=13,此时α≈0.77,散列表为T[0..12],散列函数为:h(key)=key%13。 由除余法的散列函数计算出的上述关键字序列的散列地址为(0,10,2,12,转载 2016-12-24 16:25:56 · 309 阅读 · 0 评论 -
希尔排序,堆排序,快速排序
希尔排序,堆排序,快速排序原创 2016-12-27 21:25:41 · 1070 阅读 · 0 评论 -
HashSet 的实现原理
HashSet 概述 对于 HashSet 而言,它是基于 HashMap 实现的,底层采用 HashMap 来保存元素,所以如果对 HashMap 比较熟悉了,那么学习 HashSet 也是很轻松的。我们先通过 HashSet 最简单的构造函数和几个成员变量来看一下,证明咱们上边说的,其底层是 HashMap:private transient HashMap<E,Object> map;转载 2017-12-16 18:39:20 · 484 阅读 · 0 评论 -
优先级队列
优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。 PriorityQueue是从JDK1.5开始提供的新的数据结构接口。 如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列。 由于网上的资料大多将优先级队列各个方法属性,很少有实例讲解的,为方便大家以后使用,我就写了个de转载 2017-12-16 21:43:07 · 335 阅读 · 0 评论 -
平衡二叉树
上一篇我们聊过,二叉查找树不是严格的O(logN),导致了在真实场景中没有用武之地,谁也不愿意有O(N)的情况发生, 作为一名码农,肯定会希望能把“范围查找”做到地球人都不能优化的地步。 当有很多数据灌到我的树中时,我肯定会希望最好是以“完全二叉树”的形式展现,这样我才能做到“查找”是严格的O(logN), 比如把这种”树“调正到如下结构。 这里就涉及到了“树节点”的旋转,也是转载 2017-12-27 21:34:56 · 518 阅读 · 0 评论