Most hash tables have an insertion time of $O(1)$, possibly qualified as expected and/or amortised. While insertions into cuckoo hash tables indeed seem to take $O(1)$ expected time in practice, only polylogarithmic guarantees are proven in all but the simplest of practically relevant cases. Given the widespread use of cuckoo hashing to implement compact dictionaries and Bloom filter alternatives, closing this gap is an important open problem for theoreticians. In this paper, we show that random walk insertions into cuckoo hash tables take $O(1)$ expected amortised time when any number $k \geq 3$ of hash functions is used and the load factor is below the corresponding peeling threshold (e.g. $\approx 0.81$ for $k = 3$). To our knowledge, this is the first meaningful guarantee for constant time insertion for cuckoo hashing that works for $k \in \{3,\dots,9\}$. In addition to being useful in its own right, we hope that our key-centred analysis method can be a stepping stone on the path to the true end goal: $O(1)$ time insertions for all load factors below the load threshold (e.g. $\approx 0.91$ for $k = 3$).
翻译:多数散列表格的插入时间为 O(1) 美元, 可能符合预期和/ 摊销条件 。 虽然加入 cuckoo 散列表格实际上似乎确实需要预期的时间为O(1)美元, 但实际上最简单的案例只能证明只有多式保证。 由于广泛使用 cuckoo 散列执行压缩词典和Bloom 过滤器替代品, 缩小这一差距对于理论学家来说是一个重要的开放问题 。 在本文中, 我们显示, 随机进入 cuckoo 散列表格需要1美元, 当使用任何数 $\ geq 3 hash 函数的预期摊销时间为O(1)美元, 而负载系数低于相应的剥离阈值( 例如$\ approx 0. 811$= $k = 3美元)。 据我们所知, 这是为 cuckoo 持续插入时间的第一个有意义的保证, 用于 $\ 3,\ dots, 9\ $。 除了在其本身右方有用外, 我们希望我们的关键核心分析方法能够成为最终路径的路径 $ 。