B+树的定义以及查找

news2025/4/3 3:04:41

1.B+树的定义

一棵m阶的B+树需满足下列条件:

  • 每个分支结点最多有m棵子树(孩子结点)。
  • 非叶根结点至少有两棵子树,其他每个分支结点至少有「m/2]棵子树。
  • 结点的子树个数与关键字个数相等
  • 所有叶结点包含全部关键字及指向相应记录的指针,叶结点中将关键字按大小顺序排列,并且相邻叶结点按大小顺序相互链接起来(支持顺序查找)。
  • 所有分支结点中仅包含它的各个子结点中关键字的最大值及指向其子结点的指针。

要追求“绝对平衡”,即所有子树高度要相同。

例如:一颗4阶B+树
在这里插入图片描述

2.B+树的查找

1.多路查找

从根节点开始从上到下查找。
B+树中,无论查找成功与否,最终一定都要走到最下面一层结点。

2.顺序查找

使用指针,依次从叶子结点开始查找。

3.B+树和B树的区别

1.m阶B+树:
  1. 结点中的n个关键字对应n棵子树
  2. 根节点的关键字数 n = [ 1 , m − 1 ] n=[1, m-1] n=[1,m1],其他结点的关键字数n= [ [ m / 2 ] − 1 , m − 1 ] [[m/2]-1, m-1] [[m/2]1,m1]
  3. 在B树中,各结点中包含的关键字是不重复的.
  4. 在B+树中,叶结点包含信息,所有非叶结点仅起索引作用,非叶结点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。

在B+树中,非叶结点不含有该关键字对应记录的存储地址
可以使一个磁盘块可以包含更多个关键字,使得B+树的阶更大,
树高更矮读磁盘次数更少,查找更快.

2.m阶B树:
  1. 结点中的n个关键字对应n+1棵子树
  2. 根节点的关键字数 n = [ 1 , m ] n=[1, m] n=[1,m],其他结点的关键字数 n = [ [ m / 2 ] , m ] n=[ [m/2], m] n=[[m/2],m]
  3. 在B+树中,叶结点包含全部关键字,非叶结点中出现过的关键字也会出现在叶结点中
  4. B树的结点中都包含了关键字对应的记录的存储地址
m阶B树m阶B+树
类比二叉查找树的进化一>m叉查找树分块查找的进化一>多级分块查找
关键字与分叉n个关键字对应n+1个分叉(子树)n个关键字对应n个分叉
查找方式不支持顺序查找。查找成功时,可能停在任何一层结点,查找速度“不稳定”支持顺序查找。查找成功或失败都会到达最下一层结点,查找速度“稳定”
结点包含的信息所有结点中都包含记录的信息只有最下层叶子结点才包含记录的信息(可使树更矮)
相同点除根节点外,最少「m/2]个分叉(确保结点不要太“空") 任何一个结点的子树都要一样高(确保“绝对平衡”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子电子架构——AUTOSAR信息安全机制有哪些?(上)

电子电子架构——AUTOSAR信息安全机制有哪些(上) 我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人们会在生活中不断攻击你。他们的主要…

LINUX|ubuntu常用指令

文章目录 查看IP显示当前路径下所有文件安装编译工具GCC、调试工具GDB、连接工具SSHmkdir 创建目录export命令显示当前系统定义的所有环境变量echo $PATH命令输出当前的PATH环境变量的值当前命令行添加环境变量,关闭失效,防止多版本库冲突时使用sudo su打…

零基础学习ESP8266

文章目录 零基础学习ESP8266前言选择硬件如何学习专栏大纲基础部分提高部分 总结 零基础学习ESP8266 前言 最近在空余的时候有用乐鑫的模组,感觉很不错,也决定简单写写。 相信看这篇文章的同学,希望可以熟悉ESP8266这个硬件平台。当然我们…

gogs git 服务器极速搭建

背景 小型团队合作中,需要代码托管在内网,gitlab 等搭建比较复杂,经过一番搜寻发现gogs满足需求 基本用户管理后台管理面板,能在web端查看管理安装配置极简 安装配置 gogs是支持多个平台,这里我们选择ubuntu 1.下载git…

Fastjson 结合 jdk 原生反序列化的利用手法 ( Aliyun CTF )

2023 Aliyun CTF ezbean是一道CTF java反序列化题目。 题目的目的是让选手通过一个java原生反序列化入口,最终达成RCE。本文对题目的几种解法做了具体的分析,主要分为预期解法和非预期解法两种思路。通过对Fastjson在反序列化的行为分析,从两…

ChatGPT App迎来重大更新;人工智能应用于应对气候变化

🦉 AI新闻 🚀 ChatGPT App迎来重大更新:增加多模态交互方式 摘要:OpenAI最近宣布了ChatGPT App的重大更新,新版的ChatGPT增加了多模态交互方式,用户可以向AI展示正在谈论的内容,比如拍照并询问…

装配工位防错改造

装配工位防错改造-需求 PROBLEM 装配作业的失误会引起产品品质缺陷,易导致库存、返工和报废,从而增加工厂的生产成本和时间成本,进一步甚至会导致公司丢失业务! CAUSES 1、产生装配问题的主要归因(占80%左右&#x…

华为云云耀云服务器L实例评测|搭建CounterStrike Source Delicated Server(CS起源游戏服务器)

华为云云耀云服务器L实例评测|搭建CounterStrike Source Delicated Server(CS起源游戏服务器) #【有奖征文】华为云云服务器焕新上线,快来亲身感受评测吧!# ⭐️ CounterStrikeSource(CS起源是Valve的一款…

【漏洞复现】六、maccms 远程命令执行(CVE-2017-17733)

【漏洞复现】六、maccms 远程命令执行(CVE-2017-17733) 6.0、储备知识 1、可控参数 (审计) 2、fputs()函数 函数写入文件(可安全用于二进制文件),fputs() 函数是 fwrite() 函数的别名 fpu…

服务器数据恢复-zfs下raidz多块磁盘离线导致服务器崩溃的数据恢复案例

服务器数据恢复环境: 一台服务器共配备32块硬盘,组建了4组RAIDZ,Windows操作系统zfs文件系统。 服务器故障: 服务器在运行过程中突然崩溃,经过初步检测检测没有发现服务器存在物理故障,重启服务器后故障依…

题目 1072: 汽水瓶

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以…

计算机毕业设计 基于HTML语言的环保网站的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

助力交叉学科应用型数据科学人才培养,和鲸科技携手华为发布联合解决方案

时代高速发展,智能化的浪潮奔腾而来,以“加速行业智能化”为主题,第八届华为全联接大会(HUAWEI CONNECT 2023)于 9 月 20 日正式开幕。本次大会中,华为携手生态伙伴引领智慧教育新风尚,和鲸科技…

Spring面试题14:Spring中什么是Spring Beans? 包含哪些?Spring容器提供几种方式配置元数据?Spring中怎样定义类的作用域?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring中什么是Spring Beans? 包含哪些? 在Spring中,Spring Beans是指由Spring容器管理的对象。Spring Beans包含以下内容: 类定义(Class De…

vue实现CBC加密/解密

我们现在终端引入输入 npm install crypto-js引入依赖 突然发现 crypto-js 确实是一个加密的神器 然后 我们直接在App.vue组件这样写吧 <template><div><input v-model"plainText" placeholder"输入明文" /><button click"enc…

XC4150B 3W单声道D类音频功率放大器 可用于蓝牙音箱、行车记录仪

XC4150B是一款超低EMI、无需滤波器3W单声道D类音频功率放大器。XC4150B采用先进的技术&#xff0c;在全带宽范围内极大地降低了 EMI干扰&#xff0c;最大限度地减少对其他部件的影响. XC4150B内置过流保护、过热保护及欠压保护功能&#xff0c;有效地保护芯片在异常工作…

你准备好使用 MySQL 10 了吗?

作者 | Norvald Ryeng 来源 |https://dev.mysql.com/blog-archive/are-you-ready-for-mysql-10/ 大家好&#xff0c;我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 你准备好使用 MySQL 10 了吗&#xff1f;欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号&#…

【VUE复习·2】@click 之事件处理与函数(可传参);@click 阻止事件冒泡应用场景;@click 多修饰符应用场景(高级)

总览 1.“事件处理”是什么 2.click 函数参数传递应用 3.click 阻止事件冒泡应用场景 4.click 多修饰符应用场景&#xff08;高级&#xff09; 一、“事件处理”是什么 1.概念 我们在和页面进行交互时&#xff0c;进行点击或滑动或其他动作时&#xff0c;我们操作的是 DOM …

rpc网络

零拷贝 直接IO技术 磁盘–>内核缓冲区(内核空间)–>应用程序内存(用户空间)–>Socket 缓冲区(内核缓冲区)–>网络。 内存映射文件技术 磁盘–>内核缓冲区(内核缓冲区)–>Socket缓冲区(内核缓冲区)–>网络 零拷贝技术 磁盘–>内核缓冲区–>网络…