學習影片
https://www.youtube.com/watch?v=2j8VlJFkLFg
O(log n)
。BF = Height(Left Subtree) - Height(Right Subtree)
-1 ≤ BF ≤ 1
,當 |BF| > 1
時,表示該節點失衡,需要進行旋轉操作來調整。O(log n)
。單左旋轉(LL):
10
\
20
\
30
→ 單左旋轉 →
20
/ \
10 30
單右旋轉(RR):
30
/
20
/
10
→ 單右旋轉 →
20
/ \
10 30
左右旋轉(LR):
30
/
10
\
20
→ 左右旋轉 →
20
/ \
10 30
右左旋轉(RL):
10
\
30
/
20
→ 右左旋轉 →
20
/ \
10 30
優點:
保持高度平衡,保證所有操作的時間複雜度為 O(log n)
。
相較於普通二元搜尋樹,可以避免最壞情況退化為鏈表結構。
缺點:
插入與刪除後可能需要多次旋轉,維護代價較高。
當資料量大且操作頻繁時,旋轉操作可能增加不必要的額外計算成本。