Muitl-way search tree

概要

本文是在拜读《大话数据结构》来补充学习树尤其是多路查找树的知识的时候一些摘抄与总结,感谢作者能用诙谐幽默的方式来讲解数据结构这块对于计算机科学十分重要的知识结构。

Introduction

现今数据量的增大使得一些情况下数据不能储存在计算机核心内存中, 我们不得不将数据储存在磁盘或者固态硬盘中。但是发生磁盘中的I/O读取的时候,我们必须考虑核心内存和磁盘中的访问速率不平衡的问题。
在这种情况下,我们必须考虑到一次访问所发生的时间和持续的时间,通常情况下我们使用树的节点来储存数据,但是一个节点只能储存一个数据,如果我们要使用存储很大量的数据,那么普通的树将会有很大的高度或者深度。
但是,有没有一种数同时具有这样的特性呢?------muitl-way search tree多路查找树

2-3树

2-3树的每个节点都有2个或者3个孩子(节点)

2-3 tree

特性:
1.一个2节点包含1个值和2个孩子(或者没有孩子),该节点左孩子节点中的值小于这个节点中的值,右孩子节点中的值大于这个值。
2.一个3节点包含2个值和3个孩子(或者没有孩子),该节点左孩子节点中的值小于这个节点中的左边的值,右孩子节点中的值大于这个节点中右边值,中间孩子的值介于两个值之间。
3.所有的叶子节点都在同一层。

2-3-4树

2-3-4树是2-3树的一种扩展,也就是在2-3树的基础上添加一种4节点,这种节点包含4个孩子(或者没有孩子)。
2-3-4树遵循2-3树的所有规则。

B-树

B-树是一种平衡的多路查找树,2-3树和2-3-4树都是特殊的B-树。节点上最多的孩子数就是数的阶,所以2-3树是3阶B-树,2-3-4树是4阶B-树。

B-tree

一个m阶B树的特征:
1.如果根节点不是叶子节点,那么其至少有两颗子树。
2.任何一个不属于根节点的分支都有k-1个元素和k个孩子。【m/2】(向上取整)<=k<=m.
3.所有的叶子节点都在同一层。
4.每一个分支节点包含以下信息数据(n,A0,K1,A1,K2,A2,...,Kn,An),描述:Ki(i=1,2,...n)是关键字,且Ki<K(i+1)(i=1,2,...n-1)Ai(i=1,2,...n)是指向子树的指针,且指针A(i+1)指向的值都小于Ki(i=1,2,...n),指针An指向的值都大于Knn(【m/2】-1(向上取整)<=n<=m-1.)是关键字也就是值的个数,n-1也就是子树的个数。

当我们在一颗包含有n个关键字的B-树中进行搜索时,从根节点出发到关键字节点路径上通过的节点不会超过log[m/2]((n+1)/2) + 1。

B+树

在树的结构中,我们通过中序遍历查找元素,旦这通常是在核心储存中对普通的树的操作。在B-树中,这样的操作意味着我们将要在磁盘的不同页面中访问,如果我们经过一个节点,我们就要访问这个节点中的所有元素。(访问效率低)
B+树则被定义于解决遍历的问题。

B+tree

一个m阶B+树和一个m阶B-树的区别:
1.有n个子树的节点中含有n个值。
2.所有的叶子节点包含有所有的值的信息和指向它们的指针,叶子节点的顺序是key从小到大。
3.所有的分支节点可以看作索引,只有子树包含的最大(或者最小)的值在这个节点中。

优点:如果随机查找,那么我们从根节点出发(这和B-树很像),但是分支节点不会被访问。如果是顺序访问,我们从最左边的叶子节点开始,这很适合于顺序查找。

B*树

B树是B+树的一个变种,B树添加了一个指针在分支节点上,这个分支节点指向他的右边的兄弟。

LSM树(The log-structured Merge-Tree)

LSM的原理是将数据修改的增量先储存在内存中,达到一定大小限制之后就将这些修改合并到磁盘中。因此LSM树是由两个部分组成,一个是在内存中的memtable,另一个是在磁盘中的sstable。同时内存数据不会涉及到磁盘随机访问(由于磁盘对于随机操作的处理速率较慢,但是对于连续数据的访问较快),只是在磁盘中追加一个新的文件或在文件尾部追加。

LSM-tree通过滚动合并和多页块的方法推迟和批量进行索引更新,充分利用内存来存储近期或常用数据以降低查找代价,利用硬盘来存储不常用数据以减少存储代价。

对于LSM树,这里有一篇对于来自 ben stopford 博客的翻译,翻译水平有限,但也可供参考学习之用!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,221评论 0 25
  • 译文 自从谷歌发表了他的”big table“论文以来已经过去了十年。论文中很酷的一点是它使用的文件组织方式。在1...
    Dr_zhang阅读 909评论 1 4
  • 他高高站立着 比低劣二手烟还高 比伸长鸭脖子等待的听众还高 他成了腾云驾雾的神仙 除了无人祭拜 他要讲一个笑话 一...
    人造月球阅读 90评论 0 5
  • 今天加人3个 评论10多个点赞无数、没出单、距离500盒还很遥远、以后平均每天要出货8盒、努力加油吧!争取今天出货...
    徐翠梅阅读 203评论 0 0
  • 这条马路,依然是最初的样子,绿化带里仍旧是那几棵高的矮的树,依路而生的还是那几棵叫不上名字的小树。每每,都是匆匆而...
    木子小巷阅读 285评论 0 0