平衡:樹的左右子樹的高度差距在一個可控的範圍內數組
- B-TREE
多路搜索樹
- AVL
平衡二叉樹:
空樹或它的左右兩個子樹的高度差的絕對值不超過1,左右兩個子樹都是一顆平衡二叉樹。
- RB-TREE
紅黑樹:
紅黑樹屬於平衡二叉樹,但不是嚴格的平衡二叉樹,相對接近平衡的二叉樹,
最大深度<=最小深度的兩倍(即沒有一條路徑比其餘路徑長出兩倍)
- BST
二叉搜索樹(Binary Search Tree):
- BBST
平衡二叉排序樹(Balance Binary Sort Tree)
紅黑樹概念:性能
紅黑樹特色: 排序
紅黑樹應用場景:接口
- TreeMap
基於紅黑樹實現的排序Map,默認按key(實現comparable接口)來比較排序。
TreeMap的增刪查改以及統計操做的時間複雜度都爲O(logn)
- TreeSet
- JDK1.8中
HashMap每一個數組節點掛的元素個數超過8
ConcurrentHashMap每一個數組節點掛的元素個數超過8
紅黑樹與AVL樹對比:效率
- 紅黑樹的查詢性能略遜色於AVL樹
紅黑樹放棄了追求徹底平衡,追求大體平衡,
紅黑樹的高度相對更高,所以
- 紅黑樹的插入和刪除性能比AVL效率高