查找-之多路查找树

简介: 一个结点只存储1个元素,在元素很多时,使得树的深度或高度很大 出现的问题是:内存存取外存的次数非常多-使得时间效率降低

二叉排序树或平衡二叉树(AVL树、红黑树)

查找-之二叉排序树(查找、插入、删除)

查找-之平衡二叉树AVL和红黑树

结点只有两个孩子,且结点只能存储一个元素

问题:

一个结点只存储1个元素,在元素很多时,使得树的深度或高度很大

    出现的问题是:内存存取外存的次数非常多-使得时间效率降低


解决方法:

2-3树

结构:

1970年 约翰·霍普克洛夫发明的多路查找树,它一个结点具有2孩子(2结点)或3孩子(3结点)

2结点:一个元素+2个孩子(或没有孩子)

3结点:一大一小2元素+3个孩子(或没有孩子),3个孩子的排列顺序是小、中、大

7e64d27b84d1fade105c4257c0d3347b_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlZGEz,size_16,color_FFFFFF,t_70.png

2-3树结构图

2-3-4树

结点具有2孩子(2结点)或3孩子(3结点)或4个孩子(4结点)

结构:

2结点:一个元素+2个孩子(或没有孩子)

3结点:一大一小2元素+3个孩子(或没有孩子),3个孩子的排列顺序是小、中、大

4结点:小中大3元素+4个孩子(或没有孩子),  4个孩子的排列顺序是小、中、大

B树

Blance-Tree

一种平衡多路查找树,其中的2-3树和2-3-4树是B树的特例,结点最大的孩子数目称为B树的阶,

B树的孩子数目有可以有多个

其中:

2-3树最多有3个孩子--3阶B树

2-3-4树最多有4个孩子--4阶B树


B树是如何做到减少内存和外存数据交换的次数?


    在处理的硬盘数据量很大,一次无法全部装入内存--调整B树的阶数和硬盘存储的页面大小匹配,让树的根结点持久保存在内存中;例如:B树的阶为1001,则一个结点包含1000个关键字,高度为2,可以存储10亿个关键字,那么在这棵树上寻找关键字至多需要两次硬盘的读取。


B树减少定位记录时所经历的中间过程,从而加快存取速度


适用于:内外存数据的交互、 读写相对大的数据块的存储系统、文件系统的查找、数据库索引

时间复杂度:O(logn)


缺点是:B树需要中序遍历结点,且最坏的情况是在叶子结点找到

B+树

出现分支结点中的元素会被当做该分支结点位置的中序后继者(叶子结点)再次列出

f7e04e9632b2396ef84e792c983bd69e_20200204202512188.png

                                  B+树的存储结构

和B树的区别:


1)有n棵子树的结点中包含n个关键字

2)所有叶子结点包含全部的关键字信息(所有的数据都在叶子结点),指向含这些关键字记录的指针;其中的叶子结点本身依据关键字大小顺序连接

3)所有的分支结点可看出索引,结点中仅含有子树中最大或最小的关键字

2)点的详细解析:

所有的数据都在叶子结点,非叶子结点中存放元素(用于索引)不存放数据,因此每一层可容纳更多的元素,磁盘的IO操作次数相比B树少;

B+树的所有叶子结点使用链表连接,便于区间查找和遍历。


适用于:文件系统的查找、数据库索引



目录
相关文章
|
人工智能 自然语言处理 自动驾驶
阿里云入选Gartner® AI代码助手魔力象限挑战者象限
Gartner发布业界首个AI代码助手魔力象限,全球共12家企业入围,阿里云,成为唯一进入挑战者象限的中国科技公司。对阿里云而言,此次入选代表了其通义灵码在产品功能和市场应用等方面的优秀表现。
|
存储 SQL 大数据
用实时计算释放当下企业大数据潜能
本文整理自阿里云高级产品解决方案架构师王启华(敖北)老师在 Flink Forward Asia 2023 中闭门会的分享。
722 8
用实时计算释放当下企业大数据潜能
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
457 4
|
JSON 前端开发 JavaScript
Apifox,你的API接口文档卷成这样了吗?
使用过Apifox我相信都会被这个软件的细节之处,API接口文档功能强大之处给留下深刻的印象!一个软件工具的使命肯定是要为了使用者的便捷着想,处处的简化使用者的操作让工作更效率,这种才是一种好的工具的表现。
Apifox,你的API接口文档卷成这样了吗?
|
弹性计算
阿里云服务器3年和5年活动价格参考,阿里云服务器3年和5年活动价格整理
目前阿里云各活动中的云服务器默认显示的价格都是1个月或者1年的价格,有的用户以为活动内的云服务器只能买1年,其实不是的,活动内的大部分云服务器都是可以买3年和5年的,可以买3年的云服务器为通用算力型u1云服务器,可买5年的云服务器有计算型c7、通用型g7、内存型r7和计算型c8y、通用型g8y、内存型r8y,现在购买阿里云各活动内的云服务器3年最低价格是2147.76元,5年最低价格是3003.03元,本文为大家介绍下阿里云目前活动内的云服务器如何购买3年和5年,及3年或5年的具体优惠价格。
823 1
阿里云服务器3年和5年活动价格参考,阿里云服务器3年和5年活动价格整理
|
存储 监控 架构师
十年业务开发总结,如何做好高效高质量的价值交付
软件交付是一个非常复杂的过程和体系,需要保障好每个阶段的质量和效率才能保障最终的质量和效率。本文将尝试从需求交付的前、中、后三个环节来阐述一下如何做高效高质量的价值交付。
142836 3
|
机器学习/深度学习 存储 人工智能
大语言模型的预训练[3]之Prompt Learning:Prompt Engineering、Answer engineering、Multi-prompt learning、Training strategy详解
大语言模型的预训练[3]之Prompt Learning:Prompt Engineering、Answer engineering、Multi-prompt learning、Training strategy详解
大语言模型的预训练[3]之Prompt Learning:Prompt Engineering、Answer engineering、Multi-prompt learning、Training strategy详解
|
小程序
微信小程序项目实例——投骰子
微信小程序项目实例——投骰子
|
存储 弹性计算 运维
Tair 的实操流程及常见问题 | 学习笔记
快速学习 Tair 的实操流程及常见问题
Tair 的实操流程及常见问题 | 学习笔记
|
存储 云安全 监控
【云架构】云安全和隐私:法律合规与风险管理指南,第2部分
【云架构】云安全和隐私:法律合规与风险管理指南,第2部分