多路查找树

news2024/11/26 11:34:30

1.二叉树与 B 树

1.1二叉树的问题分析

二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树

在这里插入图片描述

  1. 二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如 1 亿), 就
    存在如下问题:
  2. 问题 1:在构建二叉树时,需要多次进行 i/o 操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,
    速度有影响
  3. 问题 2:节点海量,也会造成二叉树的高度很大,会降低操作速度.

1.2多叉树

  1. 在二叉树中,每个节点有数据项,最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,
    就是多叉树(multiway tree)
  2. 后面我们讲解的 2-3 树,2-3-4 树就是多叉树,多叉树通过重新组织节点,减少树的高度,能对二叉树进行优化。
  3. 举例说明(下面 2-3 树就是一颗多叉树

在这里插入图片描述

1.3B 树的基本介

B 树通过重新组织节点,降低树的高度,并且减少 i/o 读写次数来提升效率。

在这里插入图片描述

  1. 如图 B 树通过重新组织节点, 降低了树的高度.
  2. 文件系统及数据库系统的设计者利用了磁盘预读原理,将一个节点的大小设为等于一个页(页得大小通常为 4k),
    这样每个节点只需要一次 I/O 就可以完全载入
  3. 将树的度 M 设置为 1024,在 600 亿个元素中最多只需要 4 次 I/O 操作就可以读取到想要的元素, B 树(B+)广泛
    应用于文件存储系统以及数据库系统中

2.2-3树

2.1 2-3 树是最简单的 B 树结构, 具有如下特点

  1. 2-3 树的所有叶子节点都在同一层.(只要是 B 树都满足这个条件)
  2. 有两个子节点的节点叫二节点,二节点要么没有子节点,要么有两个子节点.
  3. 有三个子节点的节点叫三节点,三节点要么没有子节点,要么有三个子节点. 4) 2-3 树是由二节点和三节点构成的树

2.2 2-3 树应用案例

将数列{16, 24, 12, 32, 14, 26, 34, 10, 8, 28, 38, 20} 构建成 2-3 树,并保证数据插入的大小顺序。(演示一下构建 2-3
树的过程.)

在这里插入图片描述

插入规则:

  1. 2-3 树的所有叶子节点都在同一层.(只要是 B 树都满足这个条件)
  2. 有两个子节点的节点叫二节点,二节点要么没有子节点,要么有两个子节点. 3) 有三个子节点的节点叫三节点,三节点要么没有子节点,要么有三个子节点
  3. 当按照规则插入一个数到某个节点时,不能满足上面三个要求,就需要拆,先向上拆,如果上层满,则拆本层,
    拆后仍然需要满足上面 3 个条件。
  4. 对于三节点的子树的值大小仍然遵守(BST 二叉排序树)的规则

2.3 其它说明

除了 23 树,还有234 树等,概念和 23 树类似,也是一种 B 树。 如图:
在这里插入图片描述
3 B 树、B+树和 B*

3.1 B 树的介绍

B-tree 树即 B 树,B 即 Balanced,平衡的意思。有人把 B-tree 翻译成 B-树,容易让人产生误解。会以为 B-树
是一种树,而 B 树又是另一种树。实际上,B-tree 就是指的 B 树。

3.2 B 树的介绍

前面已经介绍了 2-3 树和 2-3-4 树,他们就是 B 树(英语:B-tree 也写成 B-树),这里我们再做一个说明,我们在学
习 Mysql 时,经常听到说某种类型的索引是基于 B 树或者 B+树的,如图

在这里插入图片描述

对上图的说明:

  1. B 树的阶:节点的最多子节点个数。比如 2-3 树的阶是 3,2-3-4 树的阶是 4
  2. B-树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询
    关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子结点
  3. 关键字集合分布在整颗树中, 即叶子节点和非叶子节点都存放数据. 4) 搜索有可能在非叶子结点结束
  4. 其搜索性能等价于在关键字全集内做一次二分查找

3.3 B+树的介绍

B+树是 B 树的变体,也是一种多路搜索树。

在这里插入图片描述

对上图的说明:

  1. B+树的搜索与 B 树也基本相同,区别是 B+树只有达到叶子结点才命中(B 树可以在非叶子结点命中),其性
    能也等价于在关键字全集做一次二分查找
  2. 所有关键字都出现在叶子结点的链表中(即数据只能在叶子节点【也叫稠密索引】),且链表中的关键字(数据)
    恰好是有序的。
  3. 不可能在非叶子结点命中
  4. 非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层
  5. 更适合文件索引系统
  6. B 树和 B+树各有自己的应用场景,不能说 B+树完全比 B 树好,反之亦然.

3.4 B*树的介绍

B*树是 B+树的变体,在 B+树的非根和非叶子结点再增加指向兄弟的指针

在这里插入图片描述

B*树的说明:

  1. B*树定义了非叶子结点关键字个数至少为(2/3)*M,即块的最低使用率为 2/3,而 B+树的块的最低使用率为的
    1/2。
  2. 从第 1 个特点我们可以看出,B*树分配新结点的概率比 B+树要低,空间使用率更高

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

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

相关文章

洞察:2022年医疗行业数据安全回顾及2023年展望

过去的2022年,统筹安全与发展,在医疗信息化发展道路中,数据安全不可或缺。这一年,实施五年多的《网络安全法》迎来首次修改,《数据安全法》、《个人信息保护法》实施一周年,配套的《数据出境安全评估办法》…

用户标签体系建设

一、什么是标签体系 通过给每个用户打标,方便后续通过用户标签来快速筛选用户,给不同的用户满足不一样的需求。 标签体系也能给不同的用户标签群体,推送不同的内容,从而达到精准营销的目的。 二、标签体系实施架构 标签体系架…

盾王电力防护、森林防火预警应急广播方案

适用场景:针对普通路人与进入有涉电危险的区域人员作区别预警;三重音频、广告牌子宣传、LED显示、视频监控、预警干预。主要功能 第一重预警:对岸边上的行人,当你进入有涉电危险的警戒12米范围内。人体感应器探测到会马上发出语音…

光纤、光模块、光纤交换机、光模块组网设计与案例

光纤组网已是当今智能化弱电行业里一种常见的组网方式,组建远距离无线、监控网络时,往往需要使用光纤进行连接通信,使用光纤收发器是经济适用型做法,尤其是在室外的使用。其实光纤收发器不仅可以成对使用,还可以配合光…

ESP-IDF:在客户端网页上实现拍照按钮功能,并跳转新页面显示图片

ESP-IDF:在客户网页上实现拍照按钮功能,并跳转新页面显示图片 核心代码: /* Send response with custom headers and body set as the* string passed in user context*/ //const char* resp_str (const char*) req->user_ctx; const char *resp_s…

MASA Stack 1.0 发布会讲稿——实践篇

MASA Stack 1.0 实践篇 产品智能化 产品智能化的改造怎么做? 我们以采用运营商网络场景的物联网架构举例,如图从左到右,在设备端我们研发了一款净水行业通用的物联网盒子,它带有各种传感器,如TDS、温度、流量、漏水检…

80%的代码AI帮你写?还没这么夸张,不过也快了

兔年春节一过,APIcat进入到云服务版本的开发阶段,过年前发生了一件大事,Chatgpt横空出世,不少人预测Chatgpt会替代的10大行业,其中就有程序员。 这时,一位特斯拉的老哥出来说,GitHub Copilot帮…

Redis简介

Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。 Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(h…

Netty 中的 Channel执行完close之后, 还能进行write吗?

问题来源:项目中出现顶号操作的时候,正常情况下被顶掉的连接应该收到一个 “同一账号登录,请退出重登” 的错误消息, 但是偶现客户端接收不到消息的情况(连接实际上已经被服务器干掉了,客户端就呆呆的&…

word和wps添加mathtype选项卡

word或wps添加mathtype选项卡 前提 安装好word或wps安装好mathtype 步骤 确认word或wps具体安装位置确认word或wps位数为32位还是64位复制mathtype中的MathPage.wll文件和MathType Commands 2016.dotm文件到STARTUP位置添加受信任位置添加加载项 安装位置 通过开始页面&a…

三套大厂网络安全工程师面试题(附答案解析)冲刺金三银四

2023年已经开始了,先来灵魂三连问,年初定的目标是多少?薪资能涨吗?女朋友能找到吗? 好了,不扎大家的心了,接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答,不少…

亿级高并发电商项目---万达商城项目搭建(二)

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

【iOS-系统框架】

文章目录前言47.熟悉系统框架CoreFoundation框架其他框架要点48. 多用块枚举,少用for循环for循环NSEnumerator遍历快速遍历基于块的遍历方式要点49.对自定义其内存管理语义的collection使用无缝桥接要点50.构建缓存时选用NSCache而非NSDictionaryNSCacheNSCache实例…

bgp综合实验2

目录实验要求子网划分ip以及各个环回的配置ospf配置及接口网络类型更改bgp的配置路由反射器小知识联邦的小知识bgp宣告实验要求 如图 实验要求: 1,R2-7每台路由器都存在一个环回接口用于建立邻居,同时存在一个环回代表连接用户的接口&…

安全—06day

负载均衡反向代理下的webshell上传负载均衡负载均衡下webshell上传的四大难点难点一:需要在每一台节点的相同位置上传相同内容的webshell难点二:无法预测下一次请求是哪一台机器去执行难点三:当我们需要上传一些工具时,麻烦来了&a…

解决方案 | 亚洲诚信助力互联网行业网络安全建设

行业背景当前,世界正处在从工业经济向数字经济转型过渡的大变革时代,互联网作为工业社会向数字时代迁移的驱动力,是推进新一轮科技革命与产业变革的中坚力量。随着数字化进程的加剧,企业所面临的网络安全形势也日趋多变复杂。尤其…

玩具全球各地检测标准整理

玩具检测认证:REACH法规、ROHS指令、EN 71测试、ASTM F963、GB 6675、CE认证、儿童用品CPC认证等其他认证。测试标准:CPSC 总共公布了 38 个标准,主要涉及的检测内容有:1). CPSIA 总铅和邻苯;2). 美国玩具标准 ASTMF96…

springboot整合单机缓存ehcache

区别于redis的分布式缓存&#xff0c;ehcache是纯java进程内的单机缓存&#xff0c;根据不同的场景可选择使用&#xff0c;以下内容主要为springboot整合ehcache以及注意事项添加pom引用<dependency><groupId>net.sf.ehcache</groupId><artifactId>ehc…

PTA L1-044 稳赢(详解)

前言&#xff1a;内容包括四大模块&#xff1a;题目&#xff0c;代码实习&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的…

计算机组成结构之数据传输控制方式、总线、CISC和RISC

数据传输控制方式 输入输出控制方式 程序控制&#xff08;查询&#xff09;方式&#xff1a;cpu一直持续不断在查询I/O是否准备好了&#xff0c;准备好就会调用I/O&#xff1b;I/O没有准备好&#xff0c;CPU会持续等待I/O&#xff1b;&#xff08;软件实现&#xff09;程序中…