数据结构 之 B树 B+树 B*树

数据结构之 B树 B+树 B*树

B树B+树B*树存在价值:

没有比较就没有伤害,不知道存在的价值,相对其他,如平衡二叉树
现在假设这么个场景咱们有面对这样一个实际问题:

就是大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的
(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),**这样导致二叉查找树结
构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下**,那么如何减少树的深度
(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构(由于树节点元素数量是有
限的,自然该节点的子树数量也就是有限的)。
  1. Btree原则

    一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空
    树或者满足一下性质:
    1. 根节点至少有两个孩子
    2. 每个非根节点有[ ,M]个孩子
    3. 每个非根节点有[ -1,M-1]个关键字,并且以升序排列
    4. key[i]和key[i+1]之间的孩子节点的值介于key[i]、key[i+1]之间
    5. 所有的叶子节点都在同一层
    

    for example

2.B+树
for example

  1. B*树
    for example

    从图里面可以看出 b b+ b* 三种树 查询的区别,开闭口不一样,个人觉得b+叉树更合理点,开闭区间小,b+树和b* 区别没看明白,插入的时候,弄得不是太明白,需要怎么保证树的平衡,需要做哪些,后面整明白来补,整明白 在补

声明:图片来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值