两路哈希查找:降低内存访问与高效存储

0 下载量 146 浏览量 更新于2024-08-25 收藏 159KB PDF 举报
标题 "Efficient Hashing with Lookups in two Memory Accesses" 是一篇于2018年发表的计算机科学领域的论文,作者是Rina Panigrahy。该研究关注的是在计算机数据结构和算法中,特别是哈希表设计中的优化策略,尤其是针对减少查找时的内存访问次数。传统的哈希函数通常将数据项映射到一个单一的存储位置,然而,这篇论文引入了一种称为“二向哈希”的概念。 在二向哈希中,作者参考了Azar等人的一项工作,他们指出通过随机地将数据项(球)映射到两个独立的桶(或槽)中,并将球放置在较小的那个桶里,可以显著降低单个桶的最大负载。这是因为这种策略减少了最拥挤桶的概率分布,使得最大负载下降到了对数对数级别,即O(log log n)的概率下,这对于大型数据集来说是非常有效的。 相比于传统的单向哈希,二向哈希的查找过程涉及两个桶,而不是一个。这增加了查找的复杂性,但也可能带来潜在的优势。在插入操作中,作者提出了一种策略,通过在插入过程中动态调整,可以在支持哈希更新的同时,保持最大负载在线情况下不超过2,这意味着空间利用率极高。即使每个桶预先分配了空间来存放两份数据,这种方法仍然允许存储超过n的数据项,从而提高硬件实现时的记忆效率。 论文的主要贡献包括: 1. **内存访问优化**:通过二向哈希,降低了查找操作的平均内存访问次数,这对于性能敏感的应用非常重要。 2. **动态调整**:通过在插入过程中进行数据移动,维护了低负载,保证了高效性能。 3. **空间利用**:即使有硬件预分配的双倍空间,仍能存储超过n的数据项,提高了存储效率。 4. **实用性**:提出了一个简单且实用的哈希算法,适用于实际应用,尤其是在对内存访问效率有高要求的场景。 这篇论文深入探讨了如何通过巧妙的设计改进哈希表,特别是在查找操作和空间管理上,旨在提升现代计算系统的整体性能。它对数据结构理论和哈希表优化有着重要的贡献。