数据库-数据结构

news2024/9/25 17:17:12

数据库-数据结构

  • 一、B-树、B+树、B*树
    • 1 B-树
    • 2 B+树
    • 3 B*树

一、B-树、B+树、B*树

搜索树:左子节点<节点<右子节点。
B-树:多路搜索树。
B+树:B-树的变体,更适用于文件系统,如mysql数据库。具体的,适合通过叶子节点的链指针进行区间查找。
B*树:B+树变体,提高了空间使用率 1 / 2 → 2 / 3 1/2→2/3 1/22/3
参考文章:一文详解 B-树,B+树,B*树

1 B-树

在这里插入图片描述

对于一颗m阶B-树(上图m=3)
特点:

  1. 根节点至少有2个子节点,或者为空树。
  2. 非叶子节点的子节点数k: ⌈ m / 2 ⌉ ≤ k ≤ m \lceil m/2\rceil ≤k≤m m/2km。当一个节点满了,分配一个新节点,把原节点一半的数据移动到新节点,并将该新节点加入到父节点中。此时改动只有该满的节点和其父节点。
  3. 非叶子节点的关键字数j: j = k − 1 j=k-1 j=k1
  4. 叶子节点在同一层。
  5. 对于某个节点的关键字K[1],K[2]…K[M-1],K[i]<K[i+1]。
  6. 对于某个非叶子节点的指针P[1],P[2]…P[M],P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其他的P[i]指向关键字在范围(K[i],K[i+1])的子树。
  7. 关键字分布在整棵树。
  8. 搜索过程中可能在非叶子节点结束。时间复杂度等于一次二分查找。

2 B+树

在这里插入图片描述
对于一颗m阶B+树(上图m=3)
与B-树的不同:

  1. 应文件系统所需的B-树变体。
  2. 非叶子节点的关键字个数j: j = k j=k j=k
  3. 关键字不保存数据,仅用于索引。数据保存在叶子节点。
  4. 对于某个非叶子节点的指针P[1],P[2]…P[M],P[i]指向关键字在范围[K[i],K[i+1])的子树。
  5. 所有叶子节点由一个链指针链接起来。
  6. 关键字分布在叶子节点。
  7. 搜索过程中得到叶子节点才结束。时间复杂度仍然等于一次二分查找。

3 B*树

在这里插入图片描述

对于一颗m阶B*树(上图m=3)
与B+树的不同:

  1. 在非根非叶子节点的层增加了兄弟指针。
  2. 非叶子节点的子节点数k: ⌈ 2 m / 3 ⌉ ≤ k ≤ m \lceil 2m/3\rceil ≤k≤m 2m/3km,原先是 ⌈ m / 2 ⌉ ≤ k ≤ m \lceil m/2\rceil ≤k≤m m/2km,提高了块的最低使用率。当一个节点满了,根据兄弟指针检查兄弟节点是否满了,未满则将一部分数据移动到兄弟节点;如果满了则分配一个新节点,把原节点和兄弟节点各自 1 / 3 1/3 1/3的数据移动到新节点,并将该新节点加入到父节点中。此时改动有该满的节点、其父节点、兄弟节点、兄弟指针。

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

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

相关文章

SAP SQVI制作报表及SE93创建事务代码

在平时的项目中&#xff0c;财务想查询所有的凭证明细&#xff0c;SAP的查询凭证FB03不能满足需求&#xff0c;所以用SQVI制作一个简易的查询报表。 1、打开SQVI&#xff0c;填写自开发报表的名称“ZFB03”&#xff0c;点击“创建”&#xff0c;输入自开发报表的名称“凭证明细…

腾讯云免费服务器-多规格高配服务器0元试用,开箱即用

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

小程序开发哪家公司好呢?

现在的小程序开发公司还是很多的&#xff0c;不同的开发公司的开发情况会有所不同 智创有术 国内定制开发行业的佼佼者&#xff0c;曾服务过众多知名企业&#xff0c;包括沃尔玛、富士康、百度、美的等多家五百强企业。他们提供移动应用开发、Web开发、云计算和UI/UX设计等服…

2024年百元到千元价位开放式耳机推荐,性价比最高的开放式耳机

一、前言 近年来&#xff0c;开放式耳机在人们对音频体验的追求中逐渐受到重视&#xff0c;成为越来越多人的选择。然而&#xff0c;随着网络上关于开放式耳机的讨论不断增加&#xff0c;相关的争议和观点层出不穷。很多人可能心生疑虑&#xff1a;开放式耳机究竟是提升音质还…

2.右值引用和移动语义

文章目录 右值引用和移动语义&&的特性右值引用优化性能&#xff0c;避免深拷贝移动(move )语义forward 完美转发emplace_back 减少内存拷贝和移动unordered container 无序容器map和unordered_map的差别内部实现机理不同优缺点以及适用处 小结优缺点以及适用处 小结 代…

激光雷达产品调研

Lidar产品调研 Lidar原理介绍

探索 C# 中的程序运行目录获取方法

探索 C# 中的程序运行目录获取方法 引言 在 C# 开发中&#xff0c;有时需要确定您的应用程序的运行目录。这可能是为了读取配置文件、存储日志&#xff0c;或者访问与应用程序位于同一目录的其他资源。C# 提供了几种方法来获取当前程序的运行目录。本文将探讨这些方法及其使用…

[Altium Designer] AD PCB相同模块的布局步骤

针对原理图完全相同的模块布局布线很有帮助&#xff1b;一定要对应模块相同操作才具有可行性。 1、原理图中选取一路模块的元器件&#xff0c;快捷键【T→S】即可在对应的PCB中选取对应的元器件&#xff1b;跳转到PCB&#xff0c;快接方式改变右边属性&#xff0c;【ctrla】 …

【InternLM 大模型实战】第四课

XTuner 大模型单卡低成本微调实战 FINETUNE简介指令跟随微调增量预训练微调LoRA & QLoRA XTuner简介功能亮点适配多种生态适配多种硬件 8GB 显卡玩转LLMFlash AttentionDeepSpeed ZeRO 动手实战环节环境配置微调准备配置文件模型下载数据集下载修改配置文件开始微调将得到的…

使用python连接elasticsearch

有一个困惑了好久的问题&#xff0c;那就是从python里面连接elasticsearch总是报错。大致长这样 一开始我是看网上把es的安全功能关闭&#xff0c;也就是下面的内容&#xff0c;这个要进入到es的docker中去改config/elasticsearch.yml配置文件&#xff0c;但是这样改了以后kib…

【origin】负载牵引的Smith圆图

【origin】负载牵引的Smith圆图 1.从ADS导入数据到origin2.smith圆图3.扩展到多组线4.参考资料 1.从ADS导入数据到origin export导出为txt&#xff0c;得到的是幅相值&#xff0c;复制到excel如下图&#xff0c;有多根类似格式的线&#xff0c;只需要复制DE列到origin中 复制到…

单主机双屏幕实现跨屏幕信息交互的GUI程序

单主机双屏幕实现跨屏幕信息交互的GUI程序 运行程序界面 屏幕1发送数据&#xff0c;屏幕2接收数据 在屏幕1按下打开开关&#xff0c;屏幕2播放视频 代码程序 import tkinter as tk # 导入tkinter模块&#xff0c;用于创建GUI界面 import threading # 导入threading模块&#…

智能雾化壁炉设计,新时代科技与美学的完美结合

智能雾化壁炉设计&#xff0c;新时代科技与美学的完美结合 随着科技的不断创新&#xff0c;智能雾化壁炉设计成为家居设计领域的一颗耀眼明珠。它的出现不仅改变了传统壁炉的概念&#xff0c;更为我们带来了全新的视觉和感官体验。下面让我们一起探索智能雾化壁炉设计的优势和特…

企业网盘:实现数据跨境传输,助力企业出海的必备工具

今年是“一带一路”十周年。在这十年间&#xff0c;中国和“一带一路”共建国家携手并行&#xff0c;贸易持续增长发展。在如今经济全球化的大方向下&#xff0c;跨国经济合作将会是各国共识。 目前&#xff0c;中外合作企业、跨境企业已成为国际贸易发展趋势。不过&#x…

腾讯滑块(1-13,js逆向)

前言&#xff1a;之前打算写的猿人学比赛题系列因为种种原因耽搁了&#xff0c;主要还是比完赛之后热情就少了很多&#xff0c;看到评论区有人说做了这么久才做出一题&#xff0c;这里需要狡辩一下&#xff0c;我虽然菜但是还没到那种地步&#xff0c;比赛两天时间里我跟队友是…

mac快捷创建文件的方法

mac快捷创建文件的方法 在macbook的使用中&#xff0c;当我们在桌面或访达等地方使用右键时&#xff0c;可以看到新建文件夹的选项&#xff0c;却怎么也找不到创建文件的选项。这种情况有时候会带来不便。这篇文章给大家带来一个非常简单解决这个问题。 下载 在App Store中搜索…

FPGA的MARK_DEBUG调试之波形抓取

一、描述 在工作时发现FPGA向ARM传输的数据有问题&#xff0c;因此想抓取一下FPGA的波形。作为传统方式使用示波器抓取过于麻烦&#xff0c;因此使用VIVADO自带的DEBUG功能抓取输出的数据波形。 先上几个比较好的学习链接&#xff1a; https://www.cnblogs.com/tubujia/p/924…

制造领域 基础概念快速入门介绍

1、基本背景知识 本定义结合国家标准文件有所发挥&#xff0c;仅供参考。 产品&#xff1a;是生产企业向用户或市场以商品形式提供的制成品&#xff1b; 成套设备&#xff1a;在生产企业一般不用装配工序连接&#xff0c;但用于完成相互联系的使用功能的两个或两个以上的产…

支持向量机(公式推导+举例应用)

文章目录 引言间隔与支持向量机对偶问题&#xff08;拉格朗日乘子法&#xff09;SMO算法核函数软间隔与正则化软间隔正则化&#xff08;罚函数法&#xff09; 模型的稀疏性结论实验分析 引言 在机器学习领域&#xff0c;支持向量机&#xff08;Support Vector Machine&#xf…

网络——华为与华三

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆云计算学堂 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 写在前面 大家好&#xff0c;我是网络豆&#xff0…