“期望不等于每次高度都对数;小概率仍可形成链。若对手能预知或挑选优先级,独立排列论证失效。用键哈希生成确定性优先级时,要说明哈希种子是否隐藏及碰撞 tie break;重复键可用 multip…”
层级模型 ​
第 0 层含全部有序键,并以多层链表保存前向指针。每个节点独立以概率
搜索从最高层头节点出发,能向右且不越过目标就前进,否则下降一层;插入记录每层前驱后按新节点随机高度接链,删除在其出现的每层断链。
时间与空间 ​
节点指针数期望为
快车道例子 ​
底层存放全部时间戳;较高层只保留逐级抽样的时间戳。查询某一时刻先在稀疏层跨过大片区间,接近目标后下降到底层。这与给链表额外固定步长索引不同:随机高度使任何插入位置都不需要整体重排。
边界与接口 ​
这些不是最坏界;随机源退化或能观察结构的自适应对手可能制造更细的条件问题。工程实现常设最大层,截断概率分布后须重新写高度保证。范围报告先定位左端点再顺底层输出,成本是
插入路径与尾界 ​
搜索时保存每层最后一个小于目标的节点 update
对任意常数
这是对最高层的高概率界;完整搜索步数还需结合每层水平移动的几何尾,不能只由“高度低”一句推出。
一条搜索路径的账 ​
搜索键 37 时,指针可能依次经过“顶层右移到 24、下降、右移到 32、下降两层、右移到 35”。从目标位置反向看,每层向左跨过的节点数服从几何尾部,期望为
高概率界还要控制最高塔。由并集界,
因此“期望对数”不是凭直觉来自平均高度,而是同时约束层数和每层水平步数。若实现给高度设硬上限,必须说明超过上限的概率或重建策略。
参考资料
- William Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, CACM, 1990.
- Michael Mitzenmacher, Eli Upfal, Probability and Computing, randomized data structures chapters.