學習地址: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+樹)