一 B树
1.B树的定义:B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。
2.B树的特征:
- 根节点至少有两个子节点
- 每个中间节点都包含k-1个元素和k个孩子,其中 m/2 ≤ k ≤ m (m为树的阶)
- 每个叶子节点都包含k-1个元素,其中 m/2 ≤ k ≤ m (m为树的阶)
- 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域划分(一个结点有k个孩子时,必有k-1个元素才能将子树中所有元素划分为k个子集)
3.B树的操作
3.1 B树的查找:如下图,查询元素8
![ba49711a3152c313a61fa969feb1653f.png](https://i-blog.csdnimg.cn/blog_migrate/bbfbd68eb6d4b49ba2ff19c8e97bd80f.jpeg)
第一次磁盘IO:把15所在节点读到内存中,然后与8做比较,小于15,找到下一个节点(5和9对应的节点)
第二次磁盘IO:把5和9所在的节点读到内存中,然后与8做比较,5<8<9,找到下一个节点(6和8对应的节点)
第三次磁盘IO:把6和8所在节点读到内存中