B树知识点总结

B树知识点总结

1. 基本概念

  • B树是一种自平衡的m叉查找树,主要用于减少磁盘I/O操作
  • "B"可能代表balanced(平衡)、broad(宽)或Bayer(发明者姓氏)
  • 所有叶子节点位于同一层,保证了查询效率

2. B树特性

  • 每个节点最多有m个子节点(m为B树阶数)
  • 除根节点外,每个节点至少有**⌈m/2⌉个子节点**
  • 根节点至少有2个子节点(除非是叶子节点)
  • 一个节点包含k个关键字,则该节点有k+1个子节点指针
  • 节点内部关键字按升序排列,起到分隔子树的作用

3. B树操作

搜索

  • 从根节点开始,在节点内进行线性/二分查找
  • 根据比较结果选择对应的子树继续搜索

插入

  • 先找到合适的叶子节点并插入关键字
  • 节点溢出(关键字数>m-1)时需要分裂:
    • 将中间关键字提升到父节点
    • 剩余关键字分为两个节点
    • 可能递归向上处理,根节点溢出会增加树高

删除

  • 在叶子节点直接删除
  • 在非叶子节点用前驱/后继替换后删除
  • 节点下溢(关键字数<⌈m/2⌉-1)时需要调整:
    • 从兄弟节点借关键字
    • 与兄弟节点合并
    • 可能递归向上处理,根节点下溢会减少树高

4. B树变种

  • B+树:所有数据记录存储在叶子节点,叶子节点间有指针相连,广泛应用于数据库索引
  • B*树:要求非根节点至少2/3满,空间利用率更高

5. 应用场景

  • 数据库索引系统(如MySQL的InnoDB引擎)
  • 文件系统(NTFS、ext4等)
  • 大规模数据存储系统

6. 复杂度分析

  • 搜索、插入、删除时间复杂度:O(logₘn)
  • 空间复杂度:O(n)
  • 由于m通常很大(100+),B树高度很低,极大减少了I/O次数

7. 与二叉搜索树的区别

  • B树是多路平衡查找树,更适合磁盘等块存储设备
  • B树节点大小通常设计为与磁盘块大小匹配
  • B树高度更低,但节点内部需要顺序/二分查找

B树的核心价值在于优化了磁盘I/O操作,通过降低树高和增加节点容量,极大提高了大规模数据存储和检索的效率。

相关推荐
PaperAccept4 小时前
【研知有术论文发表】材料科学一区期刊,影响因子30+的纳米科技SCI,审稿严格但有效率
大数据·数据结构·科技·量子计算
Tairitsu_H4 小时前
[C++高阶数据结构·图论下] 最短路径:为什么“挑最小的”一定正确?
数据结构·c++·图论
Tairitsu_H5 小时前
[C++高阶数据结构·图论上] 最小生成树:为什么“选边”和“选点”是两条路?
数据结构·c++·图论·最小生成树
D e re k ZH21 小时前
C++ 并发、未定义行为与工程化难点(No 3)
数据结构·c++·算法·面试
La Pulga1 天前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos
番茄味城市甜菜1 天前
数据结构:双向链表实现,链表与顺序表的对比
数据结构·链表
東隅已逝,桑榆非晚1 天前
红黑树:从概念到实现
数据结构·c++·笔记·学习
YSL0701241 天前
一文通关-----树和二叉树
数据结构·算法
小糯米6011 天前
数据结构 数组与链表 内存与缓存
数据结构
若亦_1 天前
排序>>交换排序
java·数据结构·算法