《算法导论》笔记--B树

原创 2010年05月30日 21:52:00

B树是平衡树的一种,主要用于操作存储在磁盘等二级存储设备上的大量数据。相比起内存(主存)来说,磁盘操作的速度非常慢(慢几个数量级),所以涉及到存储在磁盘的数据的时候,尽量减少磁盘的读取和写入操作对于提高操作速度是非常重要的。B树就是针对这个特点进行设计以满足相应要求的。 B树的性质: •1. B树内的每一个节点x都具有以下字段: ◦当前存储在节点x中的关键字(key)个数n[x]。 ◦存储在x节点中的n[x]个关键字是以非降序的顺序排列的,即:key1[x] ≤key2[x]......≤keyn[x][x]。 ◦ 一个表示x节点否是叶节点的bool值leaf[x]。 •2. 每个内节点拥有指向n[x]+1个指向叶节点的指针,c1[x],c2[x]......cn[x]+1[x]。叶节点没有ci[x]域 •3. 节点x的key值,将子节点的key值范围分开了。如果ki是ci[x]指向的子节点的任意一个key的值,那么有: k1 ≤ key1[x] ≤ k2 ≤ key2[x] ≤ ≤ keyn[x][x] ≤ kn[x]+1. •4. 所有的叶节点具有相同的深度,这个深度也就是树高h。 •5. 一个节点可容纳的关键字数目是有上下限的。这个界限可以用包含一个大于2的整数t的表达式来表示,这个数t称为B树的最小度。 ◦除根节点外,每个节点至少要包含t-1个关键字(key),每个内节点(除根外)至少要包含t个关键字。一棵非空的B树,根节点至少要包含一个key。 ◦每个节点最多包含2t-1个关键字,因此,内节点最多有2t个子节点。对于一个包含2t-1个关键的节点,我们就称这个节点满了。 B树的每个节点都会拥有大量的子节点,而B树树高也很小。一般情况下,每个节点都会存储大量的关键字,使得节点大小接近磁盘页面大小,因为磁盘读取一个页面的数据时,相对会快一些(由于机械结构方面的原因,读取连续一个页面的数据,机械臂移动很小)。另外,根据B树的构造方式,节点的关键越多,也就能拥有越多的子节点,这对降低B树的高度很关键,B树的树高越小,那么读取磁盘的操作也会越少。速度也就相应得到提高。 B树的高度: h

算法导论 第18章 B树

一、定义 1、B树 B树是为磁盘或其它直接存取辅助存储设备而设计的一种平衡查找树,主要特点是降低磁盘I/O操作次数。 B树以自然的方式推广二叉查找树。 B树的分支因子由磁盘特性所决定。  2...
  • mishifangxiangdefeng
  • mishifangxiangdefeng
  • 2012-07-29 12:29:04
  • 6164

算法导论—B树

华电北风吹 天津大学认知计算与应用重点实验室 最后修改日期:2015/9/10B树是二叉搜索树的扩展。B树主要是用于操作存储在磁盘或其他直接存取的辅助存储设备上的大量数据。当数据太多的时候,内...
  • zhangzhengyi03539
  • zhangzhengyi03539
  • 2015-09-09 11:34:04
  • 910

算法导论之B树

开宗明义,B树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树。一般设计的简单数据结构都是面向主存而设计的,主存读取速度快但容量小;而磁盘读取速度慢而容量大,于是针对磁盘而设计的数据结构就不同于为...
  • fjssharpsword
  • fjssharpsword
  • 2016-07-25 09:58:09
  • 2140

【算法导论】B树

一棵B树T是具有如下性质的有根树(设根为root): 1.每个节点x有一下域:(a)num,当前存储在节点x的关键字个数,关键字以非降序存放,因此key[i]                     ...
  • tengweitw
  • tengweitw
  • 2013-12-04 20:21:25
  • 1729

算法导论 第18章 B 树

前言    B树和红黑树一样,也是一种平衡树。但是前者主要用在数据库系统或者文件系统中,有助于降低磁盘I/O次数;此外,B树可以有很多的子女,几十或者上千个不等,“分支因子”较大。 B树定义   ...
  • zilingxiyue
  • zilingxiyue
  • 2015-04-03 21:08:32
  • 870

算法导论 之 B树 - 删除[C语言]

作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.04.13 转载请注明来自"祁峰"...
  • RoyalApex
  • RoyalApex
  • 2014-04-13 08:36:53
  • 5226

《算法导论》笔记 第18章 18.1 B树的定义

【笔记】 【练习】
  • cyendra
  • cyendra
  • 2014-04-29 16:12:35
  • 1076

算法导论 第18章 思考题18-2 2-3-4树的链接与分裂,推广至B树

题目     2-3-4树是B树的特例,是度为2的B树。在B树这篇博客中,我们实现的B树是一个模板,因此要得到2-3-4树,即度为2的B树非常容易,只要如是声明就可以了——Btree bt,其中in...
  • zilingxiyue
  • zilingxiyue
  • 2015-04-10 19:45:49
  • 1357

B树操作算法

  • 2014年11月08日 09:53
  • 6KB
  • 下载

算法导论 之 B树(B-树) - 创建、插入[C语言]

在计算机科学中,B树在查找、访问、插入、删除操作上时间复杂度为O(log2~n)(2为底数 n为对数),不像自平衡二叉查找树,其可以有效的优化系统对大块的数据读写的性能,其通常在数据库和文件系统中被使...
  • RoyalApex
  • RoyalApex
  • 2014-03-13 18:28:41
  • 8398
收藏助手
不良信息举报
您举报文章:《算法导论》笔记--B树
举报原因:
原因补充:

(最多只允许输入30个字)