B树

引入

要想更好的理解B树的概念,我们首先得对2-3树以及2-3-4的概念有一个了解,他们都属于多路查找树

  1. 2-3树
          每一个结点都有两个孩子或者三个孩子
          一个2结点必须包含一个元素和两个孩子(或没有)
          一个三节点必须包含一大一小两个元素和三个孩子(或没有)
          
          这里写图片描述
  2. 2-3-4树
         2-3-4树就是在2-3树的基础上增加了一个4结点,还结点必须包含大中小三个元素和四个孩子(或没有)

这里写图片描述
     

正式介绍

B树(B-tree)是一种平衡的多路查找树,上面说的2-3树(三阶B树)以及2-3-4树(四阶B树)就是B树的一个特例
这里写图片描述

B树的查找,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子结点

对B树的查找效率分析:
因为第一层至少有一个结点,第二层至少有两个结点,并且除根节点的每个分支结点都至少有[m/2]颗子树,因此第三层至少有2[m/2]个结点(每个子树至少都有两个孩子)。。。。。。知道K+1层至少有2[m/2](k-1),k+1层为叶子结点,一个M阶的B树,若含有n个关键字,那么查找最坏的情况就是找到了叶子结点,此时n+1>2×([m/2])*(k-1).推出K < log((n+1)/2 以m/2为底 +1
因此对于M阶B树,查找的时候最多访问log(n+1)/2 以m/2为底 +1个结点,时间复杂度为logn 以m/2为底

优缺点分析

优点:因为B树的定义,每一层的结点所能存储的元素会比其他数据结构多得多,这样带来的一个好处就是层数变少,因此当计算机查找需要内外存访问的时候,所需的与外存(硬盘)的交互次数就会变少,并且也会减少我们必须访问结点的个数和数据库的数量,因此提升了性能。
缺点:在对结点进行遍历的时候,计算机需要不断在结点间进行遍历,而对于遍历的数据还需要通过类似引用的指针去访问硬盘获取数据,这就导致计算机不断往返与内存与硬盘之间,严重的影响了遍历的性能。
而B+树的出现就是为了弥补B树的这一缺陷,B+树以后再总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值