查找--多路查找树(B树)

本文介绍了多路查找树的概念,重点讲解了B树和B+树的特性。B树是一种平衡的多路查找树,减少内存与外存的数据交换,而B+树通过额外的指针优化了遍历效率,尤其适合范围查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前谈论的树,一个结点只能存储一个元素,当元素非常多的时候,数据度或者高度非常大,使得内存与外存的存取次数非常多,时间效率低,这时需要引入多路查找树的概念。
多路查找树(muitl-way search tree),其每一个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。主要有4中特殊形式。
1.B树
(B-树)是一种平衡的多路查找树。2-3树和2-3-4树都是B树的特例。节点最大的孩子数组称为B树的阶(order),因此,2-3树是3阶B树,2-3-4树是4阶B树。
在这里插入图片描述
在这里插入图片描述
B树减少了内存与外存的数据交换次数。其原理为:
我们的外存,如硬盘,是将所有信息分割成相等大小的页面,每次硬盘读写的都是一个或多个完整的页面,当要处理的数据量很大,数据无法一次全部装入内存,这时,调整B树,使阶数与磁盘存储页面的大小匹配,高度为2,只要先读取根节点,并只保存根节点在内存中。此时,寻找关键词的时候至多需要两次硬盘读取即可。与二叉树不同的是,减少了必须访问结点和数据块的数量。
2.B+树
但是B树遍历的时候,假设每个节点都属于硬盘的不同页面,我们为了中序遍历所有的元素,页面2-页面1-页面3-页面1-页面4-页面1-页面5.而且我们每经过节点遍历时,都会对节点中的元素进行一次遍历,有没有可能让遍历时每个元素只访问一次呢?
在这里插入图片描述
为了解决遍历问题,在B树的基础上,加上了新的元素组织方

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值