數據結構---B樹

0.簡介

B樹對我來說,是一個比較陌生的數據結構,正是因爲陌生,越是陌生就越牴觸,索性來研究一下,其中能學到的不僅僅是B樹,還會有別是收穫。

1.磁盤

說到B樹,基本所有資料都會介紹說其與磁盤上的讀寫和查找數據有關,所以B樹有了這麼個獨特的限制,如果說平衡二叉樹是抽象層面的思想,B樹已經混入一些實際應用的限制了,這個限制主要在於B樹的結點數據結構。磁盤和內存區別很大,但是本質差不多,都是存數據,由於磁盤讀寫都很慢,所以磁盤每次讀取的單元塊就比較大,這樣減少連續數據反覆讀寫磁盤,早期的讀寫單位是512字節,現在我不確定是多少,有些可能會更大,但是通常都是512字節爲一個讀寫單位,這也就是一個扇區的大小,同樣,內存也有類似的地方,例如數據數據總線數目就限制了一次讀寫的數據量,和磁盤一次讀寫一個扇區的效果是類似的。

磁盤在沒有存儲數據的時候,或者說剛買回來的時候,就像是一張白紙,紙上寫什麼語言,符號,怎麼去讀紙上的字,都是後來人爲決定的,這樣就產生了許多不同的文件系統,或者叫磁盤格式,例如FAT系列,NTFS,EXT系列,HPFS等。

前面我們研究過的平衡二叉樹,是爲了能快速查找數據而誕生的,B樹也是如此,B樹更適合用在磁盤數據組織。因爲B樹可以讓樹高很低,B樹每向下走一層,就要進行一次磁盤讀寫,所以層數越低越好,當然有人非要較真也沒辦法。相比平衡二叉樹對於同樣的數據量,層數要多一些,呈現瘦高的形狀,n叉樹的層數就會少很多,呈現矮胖的形狀。在磁盤中查詢數據到時候,不能將磁盤所有數據都加載到內存去查找,需要幾次讀寫來查找,讀寫次數越少,查找速度越快。

到這裏,我們還沒有見到B樹的樣子,目前就先認爲是一種多叉樹平衡樹吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章