如何理解B樹里定義「 除根結點外的所有非葉結點至少有 m 2 個孩子 」

時間 2021-06-01 02:26:18

1樓:陳小龍

題主需要領悟樹結構的設計思路演進.

可以問自己如下這麼乙個問題:

為什麼我們不用二分查詢樹來做索引?

這是因為查詢結點的時候, 我們需要訪問磁碟, 二分查詢樹的深度比較深, 往往需要比較多次的磁碟IO, 時間開銷較大.

基於這個考慮, 工程師設計了B-tree, 其的核心特徵是實現**平衡**, **多路** **查詢樹**

這三個詞每個詞都是重點, 需要理解其內涵. 平衡意味著, 樹的所有路徑高度都要一致, 多路意味著結點的出度》=2(實際上往往是成百上千的), 查詢樹意味著結點之間, 結點內部是有序的(類似二分查詢樹)

總之, 一切設計的目的都是為了功能服務, 這裡B樹的唯一功能就是提高訪問磁碟的效率.

2樓:Larry Sean

一半的限制一是為了保證儲存密度,二是避免樹結構退化,保證其在磁碟儲存器中的儲存優勢。

正因為 b 樹是乙個穩定的多叉結構,每乙個節點有多個 key 和分支。在磁碟儲存器這樣的查詢速度慢(硬體條件限制),以儲存塊(乙個相對較大的塊)為單位讀取的硬體結構中,才有了明顯的優勢。

如何定義 B2B ?

傅宇彤 2B還是2C,核心點在於購買的決策人。如果購買的決策人多於乙個,那麼就是2B。如果只有乙個就是2C。簡單的說,如果你是賣方,買方的購買是自己就能做決定的,不管TA代表企業還是個人,本質上都是2C的。如果有一定的決策和採購流程的,那就是2B了。 趙岩 目前遇到幾種型別。1,什麼找煤,找鋼,找鐵...

如何選擇B樹的度(degree)?

yingjun 16太小了不管對於memory還是disk都不合適假設用16做degree來存uint64 t 那麼是16 8 128 byte,對於CPU cache來說實在太小更不用說disk block了一般來講memory設為128比較合理 比如bwtree,我記得cpp btree預設是6...

如何理解《Hello!樹先生》這部電影?

阿客 真的是一部神作。電影看到最後,才恍然樹哥可能是瘋掉了,後面的種種可能都是幻想。但是從什麼時候瘋掉的,沒法給出準確的答案。 七叔說電影 絕對的傑作!乙個社會最底層的失敗者,在現實生活中沒有立身之地,只能在自己的夢幻裡卑微又頑強 辛酸又放肆的生活著。他其實一直在逃,村子裡沒有人拿他當人,他是大家眼...