65、具有不可预测时序的数据结构探索

具有不可预测时序的数据结构探索

1. 设计目标

在数据结构设计领域,存在两个重要目标:
- 调用效率 :高效操作并非时序不可预测性所独有的要求,自算法设计诞生以来,它一直是主要目标。我们不能为了获得不可预测性而过度牺牲效率。这里,效率的衡量标准是自适应对手能在多大程度上操纵数据结构,使他选择的调用尽可能昂贵。
- 调用时序的不可预测性 :直观地说,要实现时序不可预测,要求对手无法预测调用所需的时间。具体而言,对手在观察了他选择的操作的时序后,能生成每个下一个可能调用的可能时序的概率分布。我们通过所有下一个可能调用的时序分布的熵的最小值来衡量不可预测性,即 $min_{inv} H(dur(inv))$,其中 $dur(inv)$ 是表示调用 $inv$ 时序的随机变量,基于对手到目前为止观察到的调用及其时序,$H()$ 表示熵。熵直观地衡量了对手对结果时序的不确定程度。

这两个目标之间存在一定的矛盾。效率要求限制了我们所能期望的不可预测性程度。例如,一个大小为 $n$ 的数据结构,如果以 $O(f(n))$ 的时间实现调用($f$ 为非递减函数),那么其不可预测性(按上述定义)最多为 $log_2 O(f(n)) = O(log_2 f(n))$。此外,虽然这两个目标没有明确包括向对手隐藏数据结构状态,但这样做有助于实现我们的目标。

2. 跳跃表(Skip Lists)

跳跃表是一种可用于实现集合抽象数据类型的数据结构。它由多个非空链表组成,记为 $list_1, \ldots, list_m$,其中 $m \geq 1$ 在跳跃表的生命周期内可以变化。每个链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值