查找三 多路查找树(2-3树,2-3-4树,B树、B+树)

应用场景:解决在硬盘中的大量数据中的查找。因为大量数据存储在硬盘中,不能一次全部加载到内存中,而每次查一个数据读一次硬盘,读取速度太慢,这时就需要使用一种数据结构一部分一部分读入,这就是多路查找树的作用。

2-3树

2结点:每个几点包含一个元素和两个孩子(或者没有孩子)。其中左孩子小于该节点元素,右孩子大于该节点元素。
3结点:每个节点包含两个元素和三个孩子(或者没有孩子)。其中左孩子小于节点中较小元素,中孩子大于较小的小于较大的元素,右孩子大于较大的元素。
2-3树:由2结点和3结点组成的树,并且所有叶子节点都在同一层上

2-3-4树

2-3树的扩展,加入了4节点,包含小中大三个元素和四个孩子分布在这三个元素划分的四个空间范围。

B树

B树就类似于2-3树和2-3-4树,节点最大孩子数目称为B树的阶,B树的每个节点比原来那些节点多了一个指示该节点元素个数的存储空间。一般B树的阶数都很大。
优点:查找时很方便,每个节点存放在对应硬盘的一个页面,每次读取一个节点和key值对比,然后判断下一次该读哪个节点。
缺点:当需要进行中序遍历时,我们需要往返于每个节点之间(即中序遍历左子孩子访问完回到父节点,然后又访问左孩子向右一个孩子),这样就会造成多次硬盘访问,降低速度。这是就需要使用B+树

B+树

解决元素遍历的基本问题。
B+树:打破了树种每个元素只出现一次的原则,在每个叶子节点上增加存储其他中间节点中的元素。即叶子几点包含原来全部节点信息,并且包含后继的叶子节点的索引。

优点:特别适合有范围的查找。

数据库使用的就是B+树的查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值