二叉查詢樹與紅黑樹概念性質及操作時間複雜度
阿新 • • 發佈:2019-01-05
操作名(h樹高) |
二叉查詢數 |
紅黑樹 |
查詢 |
O(h) |
O(lgn) |
查最大/小元素 |
O(h) |
O(lgn) |
前驅/後繼 |
O(h) |
O(lgn) |
插入 |
O(h) |
O(lgn) |
刪除 |
O(h) |
O(lgn) |
旋轉 |
無 |
O(1) |
高度 |
下取整(lgn)+1<=h<=n |
<=2lg(n+1) |
PS:黑高度定義:從某個結點x出發(不包括該節點)到達一個葉子結點的任意一條路徑上,黑結點的個數成為該節點x的黑高度.用bh(x)表示.
紅黑樹滿足的性質:
(1) 每個結點是紅的或黑的
(2) 根結點是黑的
(3) 每個葉結點是(NIL)黑的
(4) 如果一個結點是紅的,則它的兩個孩子結點都是黑的
(5) 對於每個結點,從該節點到其子孫結點的所有路徑上包含相同數目的黑結點.
結論:
(1).紅黑樹根的黑高度至少為h/2
(2).一棵n個內結點的紅黑樹的高度至多為2lg(n+1)
資料結構的擴張:
記住一個數lgn,幾乎所有的操作都是O(lgn).
OS_SELECT, OS_RANK, INTERVAL_SEARCH, INTERVAL_INSERT, INTERVAL_DELETE都是O(lgn).