知識點1-樹(Trie樹、紅黑樹鸽疾、B+樹)

大綱:http://naotu.baidu.com/file/b49ccc722da46972dfe3a720cd414a11

1. Trie樹:https://shenlvmeng.github.io/blog/2015/11/02/trie/
2. 紅黑樹:https://zh.wikipedia.org/zh-hans/%E7%BA%A2%E9%BB%91%E6%A0%91

性質(zhì):紅黑樹是每個節(jié)點都帶有顏色屬性的二叉查找樹吊洼,顏色為紅色黑色。在二叉查找樹強制一般要求以外制肮,對于任何有效的紅黑樹我們增加了如下的額外要求:

  1. 節(jié)點是紅色或黑色冒窍。
  2. 根是黑色。
  3. 所有葉子都是黑色(葉子是NIL節(jié)點)弄企。
  4. 每個紅色節(jié)點必須有兩個黑色的子節(jié)點超燃。(從每個葉子到根的所有路徑上不能有兩個連續(xù)的紅色節(jié)點。)
  5. 從任一節(jié)點到其每個葉子的所有簡單路徑都包含相同數(shù)目的黑色節(jié)點拘领。
    紅黑樹相對于AVL樹來說意乓,犧牲了部分平衡性以換取插入/刪除操作時少量的旋轉(zhuǎn)操作,整體來說性能要優(yōu)于AVL樹约素。

講的很好的文章:http://www.reibang.com/p/37c845a5add6

Q1:JDK 中 TreeMap 和 TreeSet届良,1.8 之后的 HashMap 和 ConcurrentHashMap。

TreeMap 和 TreeSet:
TreeMap 的實現(xiàn)是紅黑樹算法圣猎,TreeSet里面絕大部分方法都是直接調(diào)用TreeMap方法來實現(xiàn)的士葫。
相同點:
TreeMap和TreeSet都是有序的集合,也就是說他們存儲的值都是排好序的送悔。
TreeMap和TreeSet都是非同步集合慢显,因此他們不能在多線程之間共享,不過可以使用方法Collections.synchroinzedMap()來實現(xiàn)同步欠啤。
運行速度都要比Hash集合慢荚藻,他們內(nèi)部對元素的操作時間復(fù)雜度為O(logN),而HashMap/HashSet則為O(1)洁段。
不同點:
最主要的區(qū)別就是TreeSet和TreeMap分別實現(xiàn)Set和Map接口应狱;
TreeSet只存儲一個對象,而TreeMap存儲兩個對象Key和Value(僅僅key對象有序)祠丝;
TreeSet中不能有重復(fù)對象疾呻,而TreeMap中可以存在。
HashMap 和 ConcurrentHashMap:https://juejin.im/post/5b551e8df265da0f84562403#heading-16

Q2:介紹二叉查找樹写半、23查找樹岸蜗,再介紹紅黑樹原理

二叉查找樹(Binary Search Tree,簡稱BST)是一棵二叉樹叠蝇,它的左子節(jié)點的值比父節(jié)點的值要小璃岳,右節(jié)點的值要比父節(jié)點的值大。它的高度決定了它的查找效率。
2-3樹:2-節(jié)點矾睦,含有一個鍵和兩條鏈接;3-節(jié)點炎功,含有兩個鍵和三條鏈接枚冗;一棵完美平衡的2-3樹中所有空鏈到根節(jié)點的距離都應(yīng)該是相同的。

Q3:與 B+ 樹進行比較

b+樹:
1)B+樹包含2種類型的結(jié)點:內(nèi)部結(jié)點(也稱索引結(jié)點)和葉子結(jié)點蛇损。根結(jié)點本身即可以是內(nèi)部結(jié)點赁温,也可以是葉子結(jié)點。根結(jié)點的關(guān)鍵字個數(shù)最少可以只有1個淤齐。
2)B+樹與B樹最大的不同是內(nèi)部結(jié)點不保存數(shù)據(jù)股囊,只用于索引,所有數(shù)據(jù)(或者說記錄)都保存在葉子結(jié)點中更啄。
3) m階B+樹表示了內(nèi)部結(jié)點最多有m-1個關(guān)鍵字(或者說內(nèi)部結(jié)點最多有m個子樹)稚疹,階數(shù)m同時限制了葉子結(jié)點最多存儲m-1個記錄。
4)內(nèi)部結(jié)點中的key都按照從小到大的順序排列祭务,對于內(nèi)部結(jié)點中的一個key内狗,左樹中的所有key都小于它,右子樹中的key都大于等于它义锥。葉子結(jié)點中的記錄也按照key的大小排列柳沙。
5)每個葉子結(jié)點都存有相鄰葉子結(jié)點的指針,葉子結(jié)點本身依關(guān)鍵字的大小自小而大順序鏈接拌倍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赂鲤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柱恤,更是在濱河造成了極大的恐慌数初,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膨更,死亡現(xiàn)場離奇詭異妙真,居然都是意外死亡,警方通過查閱死者的電腦和手機荚守,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門珍德,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矗漾,你說我怎么就攤上這事锈候。” “怎么了敞贡?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵泵琳,是天一觀的道長。 經(jīng)常有香客問我,道長获列,這世上最難降的妖魔是什么谷市? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮击孩,結(jié)果婚禮上迫悠,老公的妹妹穿的比我還像新娘。我一直安慰自己巩梢,他們只是感情好创泄,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著括蝠,像睡著了一般鞠抑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忌警,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天搁拙,我揣著相機與錄音,去河邊找鬼法绵。 笑死感混,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的礼烈。 我是一名探鬼主播弧满,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼此熬!你這毒婦竟也來了庭呜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤犀忱,失蹤者是張志新(化名)和其女友劉穎募谎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阴汇,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡数冬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了搀庶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拐纱。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哥倔,靈堂內(nèi)的尸體忽然破棺而出秸架,到底是詐尸還是另有隱情,我是刑警寧澤咆蒿,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布东抹,位于F島的核電站蚂子,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缭黔。R本人自食惡果不足惜食茎,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馏谨。 院中可真熱鬧董瞻,春花似錦、人聲如沸田巴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壹哺。三九已至,卻和暖如春艘刚,著一層夾襖步出監(jiān)牢的瞬間管宵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工攀甚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箩朴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓秋度,卻偏偏與公主長得像炸庞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荚斯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

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

  • 寫在前面 當(dāng)在10億數(shù)據(jù)進行不到30次比較就能查找到目標(biāo)時埠居,不禁感嘆編程之魅力!人類之偉大呀事期! —— 學(xué)紅黑樹有感...
    安卓大叔閱讀 659,421評論 262 1,258
  • 一些概念 數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系滥壕,并對這種結(jié)構(gòu)定義相應(yīng)的運算,而且確保經(jīng)過這...
    Winterfell_Z閱讀 5,806評論 0 13
  • 30張圖帶你徹底理解紅黑樹 寫在前面 當(dāng)在10億數(shù)據(jù)中只需要進行10幾次比較就能查找到目標(biāo)時兽泣,不禁感嘆編程之魅力绎橘!...
    雄關(guān)漫道從頭越閱讀 3,147評論 1 75
  • 0.目錄 1.算法導(dǎo)論的紅黑樹本質(zhì)上是2-3-4樹 2.紅黑樹的結(jié)構(gòu)和性質(zhì) 3.紅黑樹的插入 4.紅黑樹的刪除 5...
    王偵閱讀 2,481評論 1 2
  • 有半個月沒來寫點兒什么了,睡前無意中進來唠倦,驚喜的發(fā)現(xiàn)收到了2個打賞称鳞,太開心啦,我想今夜會睡得超香的超香稠鼻。 當(dāng)別人認(rèn)...
    央金拉姆閱讀 538評論 0 1