iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
Software Development

資料結構 - 我好想懂阿!30 天系列系列 第 17

資料結構 - 我好想懂阿!30 天系列 (17) - m-way Search Tree

  • 分享至 

  • xImage
  •  

前言

接下來要進入的章節是 m-way Search Tree,目的是為了鋪墊未來要教學的B tree of order m,本章節會先解釋為甚麼我們需要這個資料結構,再談一些數學特性,進入正題!

為甚麼需要 m-way search tree?

當資料量太大,大到沒辦法將資料一次性放到 memory 去操作,因此我們選擇令一個方法,將資料放在 Disk 中,分批載入 Memory,我們稱這樣的作法叫作 External search
然而,要將放在 DISK 中的資料載入到 Memory 時,要進行 I/O,會導致速度急遽下降,而製作成 m-way 的目的就是為了降低樹高(透過提高 Degree 數),藉此降低各 Level 載入記憶體的次數

最多 node 數、最多 key 總數、最小樹高

依 m-way Search Tree,令高度為 h

最多 Node 數

https://ithelp.ithome.com.tw/upload/images/20221001/20151910tfzKw57PY1.png
看到上圖,我們可以看成最多 node 數為https://chart.googleapis.com/chart?cht=tx&chl=m%5E0%2Bm%5E1%2B....%2Bm%5E%7Bh-1%7D%3D(m%5Eh-1)%2Fm-1

最多 Key 數

根據我們上面的式子,我們把最多的 node 數去乘上每個 node 所能乘載最多的 keys 數
https://chart.googleapis.com/chart?cht=tx&chl=(m%5Eh-1)%2Fm-1%20*%20m-1%20%3D%20m%5Eh-1
即可得到最多的 keys 數

最小樹高

若給予固定量 n 的資料,節點內容納最多 keys 量,就可以形成最小樹高
因此可以想成 https://chart.googleapis.com/chart?cht=tx&chl=n%20%3D%20m%5Eh-1%20%2C%20h%3Dlog_m(n%2B1)
即可得到最小的樹高


上一篇
資料結構 - 我好想懂阿!30 天系列 (16) - Huffman Algo
下一篇
資料結構 - 我好想懂阿!30 天系列 (18) - B Tree of order m
系列文
資料結構 - 我好想懂阿!30 天系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言