1. 概述 红黑树(Red Black Tree) 是一种自平衡二叉查找树,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。2. 性质 红黑树是每个节点都带有颜色属性的二叉查找树,颜...
分类:
其他好文 时间:
2016-06-12 16:57:51
阅读次数:
195
在刷算法题的时候总是碰到好多题,号称可以用hash table来解题。然后就蒙圈了。 1.首先,map和hash_map的区别和使用: (1)map底层用红黑树实现,hash_map底层用hash_table 实现。所以map的时间复杂度为O(logn), hash_map为O(1)。 (2)map ...
分类:
其他好文 时间:
2016-06-12 10:48:26
阅读次数:
223
为了大家方便学习和讲解红黑树,特制作这个在线生成红黑树。而且每次删除和新增破坏了红黑树特性导致变形,还会罗列出变形步骤。 在线演示地址:http://sandbox.runjs.cn/show/2nngvn8w 源码: ...
分类:
其他好文 时间:
2016-06-12 00:23:09
阅读次数:
443
1.前言 本文伪码和解释参考: http://blog.csdn.net/v_JULY_v/article/details/6105630 C实现的源码本文未贴出,请见: http://blog.csdn.net/v_july_v/article/details/6114226 July的博客对红黑 ...
分类:
其他好文 时间:
2016-06-10 13:42:36
阅读次数:
237
(一)TreeMap TreeMap使用的是红黑树来实现的,所以重点是红黑树的插入和删除。 红黑树的3个特性: 根节点和所有外部节点的颜色都是黑色的; 从根节点到外部节点的途中没有连续两个节点的颜色是红色; 所有从根节点到外部节点的路径上都有相同数目的黑色节点。 下面来分析删除操作: 删除其实是非常 ...
分类:
编程语言 时间:
2016-06-08 12:28:19
阅读次数:
387
1、http 416状态码 2、c++ map set为什么用红黑树,不用哈希表 3、消息队列,共享内存设计 4、mysql引擎有哪些,mysql优化,有没有跟DBA讨论过相关表结构的优化 5、https 加密算法分类,aes属于哪一类(这个我应该回答ssl,引到这个我比较熟悉的上面) 6、研究过的 ...
分类:
其他好文 时间:
2016-06-06 10:21:07
阅读次数:
188
2-3-4树是一种阶为4的B树。它是一种自平衡的数据结构,可以在O(lgn)的时间内查找、插入和删除,这里的n是树中元素的数目。2-3-4树和红黑树是等价的,也就是每个红黑树都可以转化为一颗2-3-4树,每个选择操作也和2-3-4树中的分裂操作对应。
2-3-4树是这样一种数据结构,满足如下性质:
1) 每个节点每个节点有1、2或3个key,分别称为2-node...
分类:
编程语言 时间:
2016-06-06 01:18:54
阅读次数:
189
;红黑树只不过是AVL树的变种而已 ,平衡方式耕地,意味着比AVL旋转的次数少,长应用于关联数组 红黑树和AVL树在实际开发中比较常用 ;AVL树二叉平衡树 适合在内存中使用速度会达到最优化,要是在文件中那么速度大大降低 ;文件中适合用b+树,B+树读文件一次读的孩子结点比较多,一次read读取尽量 ...
分类:
其他好文 时间:
2016-06-05 23:16:56
阅读次数:
165
红黑树(一) 原理和算法详细介
1 R-B Tree简介
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。
红黑树的特性:
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里...
分类:
编程语言 时间:
2016-06-05 14:07:20
阅读次数:
334
1、二分查找 二分查找时,先将被查找的键和子数组的中间键比较。如果被查找的键小于中间键,就在左子数组继续查找,如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。 每次移动left和right指针的时候,需要在mid的基础上+1或者-1, 防止出现死循环, 程序也就能够正确的运行。 但如果 ...
分类:
编程语言 时间:
2016-06-05 07:36:01
阅读次数:
392