数据结构Java09【计算机中数据的存储原理、2-3树的插入原理、B树和B+树】
學習地址:【數據結構與算法基礎-java版】? ? ? ? ? ? ? ? ??🚀數據結構--Java專欄🚀
- 筆記01【01-09】【概述、數組基本使用】【源碼、課件】
- 筆記02【10-18】【棧、隊列、單鏈表(增刪節點)、循環鏈表、雙向循環鏈表、遞歸(斐波那契、漢諾塔)】
- 筆記03【19-27】【(時間、空間復雜度);八大排序(冒泡、快速、插入、希爾、選擇、歸并、基數、隊列基數)】
- 筆記04【28-33】【樹結構(二叉樹)概述、創建、遍歷、查找節點、刪除節點】
- 筆記05【34-39】【順序存儲二叉樹概述、二叉樹遍歷、堆排序、線索二叉樹實現及遍歷】
- 筆記06【40-48】【赫夫曼樹、概述、原理分析、代碼實現(數據壓縮、創建編碼表、解碼、壓縮文件、解壓文件)】
- 筆記07【49-54】【二叉排序樹(添加、查找、刪除節點)】
- 筆記08【55-57】【二叉平衡樹(AVL)-概述、單旋轉、雙旋轉】
- 筆記09【58-60】【計算機中數據的存儲原理、2-3樹的插入原理、B樹和B+樹】
- 筆記10【61-63】【哈希表概述、散列函數的設計、散列沖突解決方案】
- 筆記11【64-67】【圖結構概述、圖遍歷原理(BFS\DFS)、圖遍歷代碼實現】
目? ?錄
P58 4.31 計算機中數據的存儲原理
P59 4.32 2-3樹的插入原理
1、2-3樹
2、詳細案例求解過程
P60 4.33 B樹和B+樹原理
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+樹)
總結
以上是生活随笔為你收集整理的数据结构Java09【计算机中数据的存储原理、2-3树的插入原理、B树和B+树】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构Java08【二叉平衡树(AVL
- 下一篇: java美元兑换,(Java实现) 美元