最近学习了二叉搜索树中的红黑树,感觉收获颇丰,在此写一篇文章小结一下学到的知识,顺便手写一下Java代码。 1.引言 先来讲讲什么是二叉搜索树,二叉搜索树有如下特点:他是以一颗二叉树(最多有两个子结点)来组织的,对于树中的某个节点,其左子树的所有元素均小于该节点,其右子树的元素均大于该节点。我们知道 ...
分类:
编程语言 时间:
2017-06-11 10:22:56
阅读次数:
278
map容器 map所处理的数据与数据库表具有键值的记录非常相似,在键值与映射数据之间,建立一个数学上的映射关系。map容器的数据结构仍然採用红黑树进行管理。插入的元素键值不同意反复,所使用的结点元素的比較函数仅仅对元素的键值进行比較,元素的各项数据能够通过键值检索出来。对于键值和映射数据。能够通过p ...
分类:
其他好文 时间:
2017-06-09 12:39:58
阅读次数:
206
1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1 ...
分类:
编程语言 时间:
2017-06-08 14:57:42
阅读次数:
296
简介: Treap,一种表现优异的BST 优势: 其较于AVL、红黑树实现简单,浅显易懂 较于Splay常数小,通常用于树套BST表现远远优于Splay 或许有人想说SBT,SBT我没有实现过,据说比较快 但是SBT、Splay以及旋转版Treap等BST都不可以比较方便地实现‘可持久化操作 Tre ...
分类:
其他好文 时间:
2017-06-06 10:56:20
阅读次数:
1583
关于LSM Tree的介绍,这篇文章http://www.benstopford.com/2015/02/14/log-structured-merge-trees/讲得非常具体。 背景 由于磁盘的顺序IO比随机IO效率高得多,为了提高写的吞吐量,有以下几个方法:termed logging,jou ...
分类:
其他好文 时间:
2017-06-05 12:37:20
阅读次数:
225
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,杭电1232畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪 ...
分类:
编程语言 时间:
2017-06-04 22:42:37
阅读次数:
250
查找(一) 我们使用符号表这个词来描写叙述一张抽象的表格。我们会将信息(值)存储在当中,然后依照指定的键来搜索并获取这些信息。键和值的详细意义取决于不同的应用。 符号表中可能会保存非常多键和非常多信息,因此实现一张高效的符号表也是一项非常有挑战性的任务。 我们会用三种经典的数据类型来实现高效的符号表 ...
分类:
其他好文 时间:
2017-06-01 22:05:56
阅读次数:
165
set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每一个节点包括一个取值红色或黑色的颜色域。以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每一个子树根节点的键值大于左子树全部节点的键值,而小于右子树全部节点的键值。不会将反 ...
分类:
其他好文 时间:
2017-06-01 19:35:19
阅读次数:
179
http://freemind.pluskid.org/archive/ http://blog.pluskid.org/ https://www.zhihu.com/question/24957182 红黑树: http://www.cppblog.com/converse/archive/200 ...
分类:
其他好文 时间:
2017-05-31 19:12:40
阅读次数:
194