當前位置:
首頁 >
对分查找的最多次数_Java数据结构与算法:多路查找树
發布時間:2025/3/21
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
对分查找的最多次数_Java数据结构与算法:多路查找树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:subeiLYhttps://blog.csdn.net/m0_46153949/article/details/106742330 更多精彩:記一次由Redis分布式鎖造成的重大事故,避免以后踩坑!6 個 Spring Boot 項目夠經典,建議收藏!數據量很大,分頁查詢很慢,推薦個優化方案!京東把 Elasticsearch 用得真牛逼!日均5億訂單查詢完美解決!推薦一款免費開源的通用數據庫工具這么設計,Redis 10億數據量只需要100MB內存關注公眾號,查看更多優質文章最近面試BAT,整理一份面試資料《Java面試BAT通關手冊》,覆蓋了Java核心技術、JVM、Java并發、SSM、微服務、數據庫、數據結構等等。獲取方式:點“在看”,關注公眾號并回復?666?領取,更多內容陸續奉上。明天見(。・ω・。)ノ?
本章思維導圖
二叉樹與B樹
二叉樹的問題分析二叉樹的操作效率較高,但是也存在問題, 請看下面的二叉樹:二叉樹需要加載到內存的,如果二叉樹的節點少,沒有什么問題,但是如果二叉樹的節點很多(比如1億), 就存在如下問題:問題1:在構建二叉樹時,需要多次進行i/o操作(海量數據存在數據庫或文件中),節點海量,構建二叉樹時,速度有影響.問題2:節點海量,也會造成二叉樹的高度很大,會降低操作速度.解決上述問題 ---> 多叉樹? ?多叉樹1.在二叉樹中,每個節點有數據項,最多有兩個子節點。如果允許每個節點可以有更多的數據項和更多的子節點,就是多叉樹(multiway tree)2.后面敘述的2-3樹,2-3-4樹就是多叉樹,多叉樹通過重新組織節點,減少樹的高度,能對二叉樹進行優化。3.舉例說明(下面2-3樹就是一顆多叉樹)B樹的基本介紹B樹通過重新組織節點,降低樹的高度,并且減少讀寫次數來提升效率。1.如圖B樹通過重新組織節點,降低了樹的高度.2.文件系統及數據庫系統的設計者利用了磁盤預讀原理,將一個節點的大小設為等于一個頁(頁得大小通常為4k),這樣每個節點只需要一次I/O就可以完全載入.3.將樹的度M設置為1024,在600億個元素中最多只需要4次I/O操作就可以讀取到想要的元素, B樹(B+)廣泛應用于文件存儲系統以及數據庫系統中.2-3樹
2-3樹基本介紹:2-3樹是最簡單的B樹結構, 具有如下特點:
2-3樹的所有葉子節點都在同一層.(只要是B樹都滿足這個條件)
有兩個子節點的節點叫二節點,二節點要么沒有子節點,要么有兩個子節點.
有三個子節點的節點叫三節點,三節點要么沒有子節點,要么有三個子節點.
2-3樹是由二節點和三節點構成的樹。
B樹、B+樹和B*樹
B樹的介紹B-tree樹即B樹,B即Balanced,平衡的意思。有人把B-tree翻譯成B-樹,容易讓人產生誤解。會以為B-樹是一種樹,而B樹又是另一種樹。實際上,B-tree就是指的B樹。前面已經介紹了2-3樹和2-3-4樹,他們就是B樹(英語:B-tree 也寫成B-樹),這里我們再做一個說明,我們在學習Mysql時,經常聽到說某種類型的索引是基于B樹或者B+樹的,如圖:
B*樹定義了非葉子結點關鍵字個數至少為(2/3)*M,即塊的最低使用率為2/3,而B+樹的塊的最低使用率為B+樹的1/2。
從第1個特點我們可以看出,B*樹分配新結點的概率比B+樹要低,空間使用率更高
總結
以上是生活随笔為你收集整理的对分查找的最多次数_Java数据结构与算法:多路查找树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python提供了方法用于读取文本文件内
- 下一篇: java hashedmap_Java基