Storing a Sparse Table with O(1) Worst Case Access Time

Storing a Sparse Table with O(1) Worst Case Access Time

Vol 31, No 3, July 1984 | MICHAEL L. FREDMAN AND JÁNOS KOMLÓS AND ENDRE SZEMERÉDI
The paper presents a data structure for storing a set of \( n \) items from a universe of \( m \) items, achieving \( O(1) \) worst-case access time for membership queries while using space \( n + o(n) \). The method involves partitioning the set into blocks using a hash function and storing each block in a separate cell in a memory array. The query algorithm is straightforward and involves probing a sequence of cells to determine if the element is in the set. The construction of the data structure can be done in expected time \( O(n) \) by randomly selecting a suitable hash function. The paper also discusses a refinement that reduces the storage usage to \( n + o(n) \) while maintaining constant query time. Additionally, the authors explore variations of the method, including mappings that avoid large multiplications and preserve Hamming weight.The paper presents a data structure for storing a set of \( n \) items from a universe of \( m \) items, achieving \( O(1) \) worst-case access time for membership queries while using space \( n + o(n) \). The method involves partitioning the set into blocks using a hash function and storing each block in a separate cell in a memory array. The query algorithm is straightforward and involves probing a sequence of cells to determine if the element is in the set. The construction of the data structure can be done in expected time \( O(n) \) by randomly selecting a suitable hash function. The paper also discusses a refinement that reduces the storage usage to \( n + o(n) \) while maintaining constant query time. Additionally, the authors explore variations of the method, including mappings that avoid large multiplications and preserve Hamming weight.
Reach us at info@study.space
[slides and audio] Storing a sparse table with O(1) worst case access time