1. 程式人生 > >二叉查詢樹與紅黑樹概念性質及操作時間複雜度

二叉查詢樹與紅黑樹概念性質及操作時間複雜度


操作名(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).