[查找]AVL樹,紅黑樹焙压,B樹凿歼,B+樹以及索引相關(guān)

關(guān)于應(yīng)用,知乎上有問題是討論這個(gè)的:

AVL樹褪迟,紅黑樹,B樹答憔,B+樹味赃,Trie樹都分別應(yīng)用在哪些現(xiàn)實(shí)場(chǎng)景中?

應(yīng)用場(chǎng)景概要

關(guān)于AVL的應(yīng)用有篇文章可以看看加深理解:Windows運(yùn)用AVL樹對(duì)進(jìn)程地址空間的管理

根據(jù) 《數(shù)據(jù)結(jié)構(gòu)與算法C語(yǔ)言描述》虐拓,AVL樹的最大高度是1.44 * log(N+2) - 1.328心俗,紅黑樹的最大高度是2.00* log(N+1)。與紅黑樹相比蓉驹,AVL樹的插入刪除操作更慢一些城榛,但是查詢操作更快。想必對(duì)進(jìn)程地址空間的查詢操作更頻繁一些态兴,所以AVL得以入選



寒江獨(dú)釣的整個(gè)[Data Structures & Algorithms]系列的文章也很不錯(cuò)狠持,每篇寫得很詳細(xì)易懂

淺談算法和數(shù)據(jù)結(jié)構(gòu): 七 二叉查找樹

淺談算法和數(shù)據(jù)結(jié)構(gòu): 八 平衡查找樹之2-3樹

淺談算法和數(shù)據(jù)結(jié)構(gòu): 九 平衡查找樹之紅黑樹

淺談算法和數(shù)據(jù)結(jié)構(gòu): 十 平衡查找樹之B樹

淺談算法和數(shù)據(jù)結(jié)構(gòu): 十一 哈希表

值得反復(fù)看,每一次都有收獲瞻润,比如看到“淺談算法和數(shù)據(jù)結(jié)構(gòu): 六 符號(hào)表及其基本實(shí)現(xiàn)”這里面的總結(jié)提到:

用有序數(shù)組的二分查找法提高了符號(hào)表的查找速度喘垂,但是插入效率仍舊沒有得到提高,而且在要維護(hù)數(shù)組有序绍撞,還需要進(jìn)行排序操作正勒。這兩種實(shí)現(xiàn)方式簡(jiǎn)單直觀,但是無(wú)法同時(shí)達(dá)到較高查找和插入效率傻铣。那么有沒有一種數(shù)據(jù)結(jié)構(gòu)既能夠在查找的時(shí)候有較高的效率章贞,在插入的時(shí)候也有較好的效率呢......

才發(fā)現(xiàn)二叉查找樹的引子是基于這樣的思考,以前看到二叉查找樹就是相當(dāng)然的



其實(shí)最開始找到的是Poll的筆記?的一篇文章非洲,

[Data Structure & Algorithm] 七大查找算法

里面簡(jiǎn)單明了的介紹了查找算法鸭限,文章中還有作者應(yīng)用的其它資料,上面提到的寒江獨(dú)釣也是從這里發(fā)現(xiàn)的(不得不感嘆两踏,大神無(wú)處不在)

關(guān)于查找算法里覆,個(gè)人覺得樹表查找比較麻煩一些,總是懵懵懂懂看過后缆瓣,就是這個(gè)地方很容易遺忘

整體結(jié)構(gòu)如下喧枷,作者從簡(jiǎn)單的二叉查找樹開始介紹,只要自己靜下心一步步看下去弓坞,就整個(gè)豁然開朗了隧甚,至少對(duì)于樹表查找一系列的算法思想能有所了解,可以反復(fù)重覆體味

最簡(jiǎn)單的樹表查找算法——二叉樹查找算法

平衡查找樹之2-3查找樹(2-3 Tree)

平衡查找樹之紅黑樹(Red-Black Tree)

B樹和B+樹(B Tree/B+ Tree)

二叉樹在最壞的情況下仍然會(huì)有O(n)的時(shí)間復(fù)雜度渡冻,退化成鏈表


其關(guān)于樹表查找總結(jié):

二叉查找樹平均查找性能不錯(cuò)戚扳,為O(logn),但是最壞情況會(huì)退化為O(n)。

我們?cè)谧顗牡那闆r下仍然有較好的時(shí)間復(fù)雜度寞蚌,這就是平衡查找樹設(shè)計(jì)的初衷?

在二叉查找樹的基礎(chǔ)上進(jìn)行優(yōu)化,我們可以使用平衡查找樹葬馋。平衡查找樹中的2-3查找樹砍艾,這種數(shù)據(jù)結(jié)構(gòu)在插入之后能夠進(jìn)行自平衡操作蒂教,從而保證了樹的高度在一定的范圍內(nèi)進(jìn)而能夠保證最壞情況下的時(shí)間復(fù)雜度。

但是2-3查找樹實(shí)現(xiàn)起來(lái)比較困難脆荷,紅黑樹是2-3樹的一種簡(jiǎn)單高效的實(shí)現(xiàn)凝垛,他巧妙地使用顏色標(biāo)記來(lái)替代2-3樹中比較難處理的3-node節(jié)點(diǎn)問題。紅黑樹是一種比較高效的平衡查找樹蜓谋,應(yīng)用非常廣泛梦皮,很多編程語(yǔ)言的內(nèi)部實(shí)現(xiàn)都或多或少的采用了紅黑樹。

除此之外桃焕,2-3查找樹的另一個(gè)擴(kuò)展——B/B+平衡樹剑肯,在文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)中有著廣泛的應(yīng)用。

作者還有些其它的文章也是不錯(cuò)

[Data Structure] 數(shù)據(jù)結(jié)構(gòu)中各種樹

[Data Structure & Algorithm] 八大排序算法



關(guān)于紅黑樹和AVL樹的比較

紅黑樹并不追求“完全平衡”——它只要求部分地達(dá)到平衡要求观堂,降低了對(duì)旋轉(zhuǎn)的要求让网,從而提高了性能;紅黑樹是一個(gè)更高效的檢索二叉樹型将,因此常常用來(lái)實(shí)現(xiàn)關(guān)聯(lián)數(shù)組

AVL樹是最先發(fā)明的自平衡二叉查找樹

紅黑樹的算法時(shí)間復(fù)雜度和AVL相同,但統(tǒng)計(jì)性能比AVL樹更高荐虐。

紅黑樹和AVL樹的應(yīng)用場(chǎng)景簡(jiǎn)介

PS:想對(duì)于紅黑樹有原理七兜、實(shí)現(xiàn)深入了解可以參考skywang12345 寫到文章

(01)紅黑樹(一)之 原理和算法詳細(xì)介紹

(02)紅黑樹(二)之 C語(yǔ)言的實(shí)現(xiàn)

(03)紅黑樹(三)之 Linux內(nèi)核中紅黑樹的經(jīng)典實(shí)現(xiàn)

(04)紅黑樹(四)之 C++的實(shí)現(xiàn)

(05)紅黑樹(五)之 Java的實(shí)現(xiàn)

(06)紅黑樹(六)之 參考資料



CodingLabs寫的

MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理


待更新.......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市福扬,隨后出現(xiàn)的幾起案子腕铸,更是在濱河造成了極大的恐慌,老刑警劉巖铛碑,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狠裹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡汽烦,警方通過查閱死者的電腦和手機(jī)涛菠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)撇吞,“玉大人俗冻,你說(shuō)我怎么就攤上這事‰咕保” “怎么了迄薄?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)煮岁。 經(jīng)常有香客問我讥蔽,道長(zhǎng)涣易,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任冶伞,我火速辦了婚禮新症,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碰缔。我一直安慰自己账劲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布金抡。 她就那樣靜靜地躺著瀑焦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梗肝。 梳的紋絲不亂的頭發(fā)上榛瓮,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音巫击,去河邊找鬼禀晓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坝锰,可吹牛的內(nèi)容都是我干的粹懒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼顷级,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凫乖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起弓颈,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤帽芽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后翔冀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體导街,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年纤子,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搬瑰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡控硼,死狀恐怖跌捆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情象颖,我是刑警寧澤佩厚,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站说订,受9級(jí)特大地震影響抄瓦,放射性物質(zhì)發(fā)生泄漏潮瓶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一钙姊、第九天 我趴在偏房一處隱蔽的房頂上張望毯辅。 院中可真熱鬧,春花似錦煞额、人聲如沸思恐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胀莹。三九已至,卻和暖如春婚温,著一層夾襖步出監(jiān)牢的瞬間描焰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工栅螟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荆秦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓力图,卻偏偏與公主長(zhǎng)得像步绸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吃媒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容