具有最优最坏情况访问时间的 O(log log n) 竞争比二叉搜索树
1. 引言
字典是用于存储和检索信息的基本数据结构,而二叉搜索树(BST)是一种广为人知且广泛使用的字典实现方式,它结合了效率、灵活性和适应性,是计算机科学的基础数据结构之一。
在过去几十年里,许多 BST 方案被开发出来,它们能在 O(log n) 时间内完成元素访问(以及其他许多操作),这里的 n 是树中元素的数量,这是基于比较模型下的最优单操作最坏情况访问时间。对于访问序列而言,特定的访问序列可能存在能在少于 Θ(m log n) 时间内完成 m 次访问的 BST 算法。评估 BST 算法对单个序列适应能力的常用方法是竞争分析:对于访问序列 X,定义 OPT(X) 为任何 BST 算法服务该序列所需的最短时间。若给定的 BST 算法 A 能在 O(f(n) OPT(X)) 时间内处理所有序列 X,则称其为 f(n) 竞争的。
1985 年,Sleator 和 Tarjan 开发了伸展树(splay trees),并推测其具有 O(1) 竞争比,但此推测至今仍未得到证明。多年来,已知的最佳 BST 结构竞争比为 O(log n),普通的静态平衡树就能达到这一比例。
后来,Demaine 等人开发了一种 O(log log n) 竞争比的 BST 结构——探戈树(tango trees),这是 BST 竞争比相较于平凡的 O(log n) 上界的首次改进。不过,探戈树每次访问可能会产生 O(log log n) 的额外开销,其最坏情况访问时间为 Θ(log log n log n),在某些长度为 m 的访问序列上需要 Θ(m log log n log n) 时间。相比之下,任何平衡 B
超级会员免费看
订阅专栏 解锁全文
13

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



