中文

Robin Hood 哈希在满表时确实具有常数级平均搜索代价与方差

数据结构与算法 2016-05-16 v1

摘要

三十年前,Robin Hood 冲突解决策略被引入开放寻址哈希表,并找到了其搜索代价分布的递推方程。尽管该递推方程无法解析求解,但数值计算令人瞩目地表明,当表满时搜索代价的方差趋近于 1.8831.883。此外,通过使用一种非标准的均值中心搜索算法,这意味着即使在满表中,搜索也能在期望常数时间内完成。尽管这些观察结果已过去多年,但在证明它们方面一直未取得进展。本文引入一种技术,通过转而求解一个关联的微分方程来绕过递推方程的难解性。虽然这并未给出精确解,但其效力足以证明方差的界,从而获得一个证明:对于任意接近 1 的负载因子,Robin Hood 的方差由一个小的常数界定。作为推论,这证明了均值中心搜索算法在期望常数时间内运行。我们还利用该技术研究了 Robin Hood 哈希表在长序列插入和删除(删除通过将元素标记为已删除来实现)下的性能。我们证明,在这种情况下,方差由 1/(1α)+O(1)1/(1-\alpha)+O(1) 界定,其中 α\alpha 是负载因子。为了建模这些哈希表的行为,我们采用了一种统一方法,该方法也可用于研究先到先服务和后到先服务冲突解决策略,无论是否包含删除。

关键词

引用

@article{arxiv.1605.04031,
  title  = {Robin Hood Hashing really has constant average search cost and variance in full tables},
  author = {Patricio V. Poblete and Alfredo Viola},
  journal= {arXiv preprint arXiv:1605.04031},
  year   = {2016}
}