|
操作名(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).
本文深入探讨了红黑树的性质、操作效率及其在不同场景下的应用,详细阐述了红黑树的高度、查找、插入、删除等关键操作的时间复杂度,并解释了红黑树如何通过旋转保持平衡,确保数据结构的高效运行。
3046

被折叠的 条评论
为什么被折叠?



