当前位置: 首页 > news >正文

【数据结构】B树家族详解:B树、B+树、B*

在这里插入图片描述

一、B树(B-Tree)

1. 定义

B树是一种平衡多路查找树,自平衡的树,能够保持数据有序,设计目标是为减少磁盘I/O次数。适用于需要频繁读写磁盘的场景(如数据库、文件系统)。

2、B树基本性质

节点键值数量限制:

对于 m 阶 B 树,根节点至少有 1 个键值,最多有 m - 1 个键值;非根非叶子节点至少有⌈m/2⌉ - 1 个键值,最多有 m - 1 个键值。比如 5 阶 B 树,根节点最少有 1 个键值,最多 4 个;非根非叶子节点最少有 2 个键值,最多 4 个。这种限制保证了 B 树在数据增加或减少时,通过节点的分裂与合并来维持树的平衡和结构稳定性。

子树数量与键值关系:

每个节点的子树数量等于键值数量加 1。例如一个包含 3 个键值的节点,必然有 4 个子树。每个子树包含的键值范围由该节点的键值界定,左边子树的所有键值小于该节点的第一个键值,中间子树的键值介于相邻两个键值之间,右边子树的键值大于该节点的最后一个键值。

所有叶子节点在同一层:

这是 B 树保持平衡的重要特征。无论数据如何插入或删除,B 树通过一系列操作,如节点分裂、合并和键值转移,保证所有叶子节点处于同一层次。这使得 B 树在进行查询操作时,查找路径的长度基本一致,从而保证查询效率的稳定性,时间复杂度稳定在 O (log n),n 为节点数。

3、B树特点

数据分布:

B 树的数据既可以存储在叶子节点,也可以存储在非叶子节点。在某些查询场景下,可能需要在非叶子节点和叶子节点之间多次查找才能获取完整数据。

平衡特性:

B 树同样是自平衡的,通过插入和删除操作时的节点分裂与合并,保证树的高度相对平衡,使得查询操作的时间复杂度稳定在 O (log n),其中 n 为节点数。这确保了无论数据量大小,B 树都能保持较好的查询性能。

多路查找:

相关文章:

  • 【NLP 38、激活函数 ④ GELU激活函数】
  • Week1_250217~250223_OI日志(待完善)
  • 2025 银行业科技金融创新与发展报告
  • vLLM专题(十二)-推理输出(Reasoning Outputs)
  • 回合制游戏文字版(升级)
  • 【GreenHills】GHS合并库文件
  • 2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(一)
  • ROS ur10机械臂添加140夹爪全流程记录
  • Android Studio超级详细讲解下载、安装配置教程(建议收藏)
  • 第二章:辅助功能
  • FFmpeg进化论:从av_register_all手动注册到编译期自动加载的技术跃迁
  • 高中数学基础-平面向量
  • JMeter性能问题
  • 5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)
  • Linux提权之提权脚本应用(十二)
  • halcon三维点云数据处理(二十五)moments_object_model_3d
  • 【qt链接mysql】
  • Android 轻量级双向 IPC 通信 Messenger
  • 前端项目打包过滤指定icon文件
  • 100天精通Python(爬虫篇)——第113天:爬虫基础模块之urllib详细教程大全
  • 上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 商务部:中方敦促美方尽快停止232关税措施
  • 4台肺癌手术,2名“90后”患者,这届年轻人的肺怎么了?
  • 广东省原省长卢瑞华逝世,享年88岁
  • 美国和沙特签署上千亿美元军售协议
  • 技术派|更强的带刀侍卫:从054B型战舰谈谈世界护卫舰发展