学习地址:https://www.bilibili.com/video/BV1Zt411o7Rn【数据结构与算法基础-java版】
🚀数据结构--Java专栏:https://blog.csdn.net/weixin_44949135/category_10103369.html🚀
笔记01【01-09】https://blog.csdn.net/weixin_44949135/article/details/106742935【概述、数组基本使用】【源码、课件】
笔记02【10-18】https://blog.csdn.net/weixin_44949135/article/details/106746038【栈、队列、单链表、链表、递归】
笔记03【19-27】https://blog.csdn.net/weixin_44949135/article/details/106784224【八大排序算法】
笔记04【28-33】https://blog.csdn.net/weixin_44949135/article/details/106823785【树结构概述、二叉树】
笔记05【34-39】https://blog.csdn.net/weixin_44949135/article/details/106832176【顺序存储二叉树、堆排、线索二叉树】
笔记06【40-48】https://blog.csdn.net/weixin_44949135/article/details/106843814【赫夫曼树、解码、压缩&解压文件】
笔记07【49-54】https://blog.csdn.net/weixin_44949135/article/details/106886659【二叉排序树】
笔记08【55-57】https://blog.csdn.net/weixin_44949135/article/details/106896570【平衡二叉树(AVL)】
笔记09【58-60】https://blog.csdn.net/weixin_44949135/article/details/106852286【计算机数据存储原理、2-3树、B树】
笔记10【61-63】https://blog.csdn.net/weixin_44949135/article/details/106936504【哈希表、散列函数设计、解决冲突】
笔记11【64-67】https://blog.csdn.net/weixin_44949135/article/details/106939350【图概述、图遍历(DFS、BFS)】
目 录
P58 4.31 计算机中数据的存储原理
树的数据结构,主要应用场景:内存(数据量少!)。
数据量大,不能直接存在内存中 --> 存储到硬盘中。
硬盘:机械硬盘、固态硬盘。
机械硬盘的存储介质:磁盘。
读取速度:内存 > 固态硬盘 > 机械硬盘
磁盘固定于主轴之上;一个主轴上,可以固定几个磁盘。磁盘上下分为两面。
磁盘的盘面,分为一圈圈;每一圈 称为 磁道。使用间隔(gap)可以将磁道分为若干个扇区(sector)。
数据存储在扇区中。
硬盘读取磁盘数据:传动臂顶上的磁头 在磁盘上 读取数据。
传动臂可以进行一定的摆动,磁盘进行转动。磁盘转动速度:7200转/min、5400转/min。
磁盘的转动集合传动臂的摆动,可以读取磁盘盘面上的任何一个扇区的内容。
二叉树:每个节点存储一个值。数据量大,树的高度会非常高。
节点数多,导致I/O操作多,速度慢!
==>
将节点进行拓展。(根节点:3个值;子节点:7个值。只有5个节点,最多2次I/O操作。)
P59 4.32 2-3树的插入原理
1、2-3树
2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。高为h的2-3树包含的节点数大于等于高度为h的满二叉树的节点数,即至少有2^h-1个节点。
2、详细案例求解过程
2-3树(B树特例):对节点进行拓展。
2-3树(3阶B树):每放入一个数,都要保证是B树!!!【把 三节点 拆分为 两个 二节点。】【下面放不下的,往上放。】
中序遍历---有序集合
P60 4.33 B树和B+树原理
2-3-4树(4阶B树)
B+树:B树的变形,可以 通过 索引信息 快速地 找到 想要的数据。
MySQL数据库(2种引擎:B树、B+树)