两种新的列表更新算法家族
1. 引言
在计算机科学中,列表更新算法是一个重要的研究领域。想象有一个包含 n 个元素的未排序列表 {1, ..., n} ,当我们请求列表中的某个元素 x 时,需要从列表头部开始搜索。检索成本通常是识别该元素所需的比较次数,也就是元素在列表中所处的位置编号。检索完成后,列表更新算法可以将请求的元素免费移动到更靠前的位置,而交换相邻元素则需要付出额外成本。如果算法在处理请求时不知道未来的查询,就称其为在线算法。
这里我们只考虑对列表元素的请求,不涉及插入或删除操作(静态模型),不过相关分析也可以扩展到列表元素集合随时间变化的动态模型。
列表更新算法在实际应用中非常广泛。最直接的应用是将字典实现为单链表,在线算法能不断适应请求序列,以较低的计算成本近似生成请求的过程。此外,它们还在数据压缩算法和几何应用(如计算点的最大值或凸包)中发挥着重要作用。
在竞争分析中,我们会将在线算法 alg 与最优离线算法 opt 进行比较。对于任意请求序列 σ ,用 alg(σ) 表示 alg 处理 σ 的总成本, opt(σ) 表示 opt 处理 σ 的总成本。如果存在常数 a ,使得对于所有请求序列 σ 都有 alg(σ)
超级会员免费看
订阅专栏 解锁全文
1561

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



