码迷,mamicode.com
首页 >  
搜索关键字:红黑树    ( 1467个结果
HashMap源码解读
HashMap通常使用链地址方法存储,但是当链的长度太大(大于8)时,这个链就会转换为红黑树,类似java.util.TeeMap。大部分的方法一般使用链表,但检查到节点为树节点时,也会使用树。树状的链表可以向其他链表一样使用和遍历,但是如何HashMap中冲突严重的情况下,树状的链表查找更快。Ha ...
分类:其他好文   时间:2017-12-02 11:17:00    阅读次数:176
Java8 HashMap源码分析
`java.util.HashMap`是最常用的java容器类之一, 它是一个线程不安全的容器. 本文对JDK1.8.0中的HashMap实现源码进行分析. 使用位运算巧妙的进行散列并使用链地址法处理冲突. 自JDK1.8后, 若表中某个位置元素数超过阈值 则会将其自动转换为红黑树来提高检索效率. ...
分类:编程语言   时间:2017-11-28 01:36:37    阅读次数:217
漫画:什么是红黑树?
https://mp.weixin.qq.com/s/BE_UdHdwTna9dq-qeTPAAQ 系列文章: 《漫画:什么是一致性哈希?》 《漫画:什么是B+树?》 《漫画:什么是B-树?》 《漫画:什么是跳跃表?》 《漫画:什么是动态规划?》 《漫画:当程序猿遇上智力测试题》 《漫画:判断 2 ...
分类:其他好文   时间:2017-11-26 11:17:35    阅读次数:139
TreeSet
TreeSet是SortedSet接口实现的类. TreeSet保证了遍历时的有序性.TreeSet就是红黑树. 添加时,从根结点开始比较,确定插入左子树还是右子树,这是个比较的过程. 所以 (1) 添加的对象必须自身继承Comparable接口,实现compareTo(Object obj),比如 ...
分类:其他好文   时间:2017-11-25 23:36:18    阅读次数:235
树型结构大总结
一、二叉树 1.完全二叉树 2.满二叉树 3.平衡二叉树 4.红黑树 5.树堆 6.线索二叉树 二、堆 1.最大/最小堆 2.二项堆 3.斐波那契堆 4.左偏树 三、B树 1.B树 2.B+树 3.B*树 四、字典树 ...
分类:其他好文   时间:2017-11-25 14:22:30    阅读次数:170
红黑树总结
红黑树总结 红黑树用来解决什么问题? 在树型的查找中,我们知道二叉查找树的查找效率很不错,但是此树右个缺陷,就是对基本有序的树查找起来变成了二分查找法.效率低下.后来出现了平衡二叉树,解决了这个问题,但平衡二叉树无论是实现,还是其为了维护左右子树高度差问题的维护实现进而导致效率低下,进而产生了红黑树 ...
分类:其他好文   时间:2017-11-21 18:49:58    阅读次数:168
【集合框架】JDK1.8源码分析之HashMap(一) 转载
【集合框架】JDK1.8源码分析之HashMap(一) 一、前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个, ...
分类:其他好文   时间:2017-11-20 13:23:01    阅读次数:113
结合java.util.TreeMap源码理解红黑树
前言 本篇将结合JDK1.6的TreeMap源码,来一起探索红-黑树的奥秘。红黑树是解决二叉搜索树的非平衡问题。 当插入(或者删除)一个新节点时,为了使树保持平衡,必须遵循一定的规则,这个规则就是红-黑规则: 1) 每个节点不是红色的就是黑色的 2) 根总是黑色的 3) 如果节点是红色的,则它的子节 ...
分类:编程语言   时间:2017-11-19 22:48:38    阅读次数:323
Knowledge_SPA——精研查找算法
首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等。这也与我的上一篇 "面向程序员编程——精研排序算法" 不尽相同。 关键字:二分查找树,红黑树,散列表,哈希,索引,泛型,API设计,日志设计,测 ...
分类:编程语言   时间:2017-11-18 18:50:22    阅读次数:198
第十至十二章 算法分析--高阶数据结构
1.贪婪算法的第二个应用为 哈夫曼编码 来进行文件压缩。 文件压缩的主要问题是给文件中的所有字符分配能唯一识别的编码(n个比特),如果我们事先知道所有字符出现的频率,把频率最高的放在最上层,频率低的放在左侧最下层,这就是最优编码。 2.编码树,所有字符都放在叶节点上,往左走的每条路径代表0,往右走的 ...
分类:编程语言   时间:2017-11-17 00:01:44    阅读次数:269
1467条   上一页 1 ... 69 70 71 72 73 ... 147 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!