A Hash Table Without Hash Functions, and How to Get the Most Out of Your Random Bits
Abstract
This paper considers the basic question of how strong of a probabilistic guarantee can a hash table, storing -bit key/value pairs, offer? Past work on this question has been bottlenecked by limitations of the known families of hash functions: The only hash tables to achieve failure probabilities less than require access to fully-random hash functions -- if the same hash tables are implemented using the known explicit families of hash functions, their failure probabilities become . To get around these obstacles, we show how to construct a randomized data structure that has the same guarantees as a hash table, but that \emph{avoids the direct use of hash functions}. Building on this, we are able to construct a hash table using random bits that achieves failure probability for an arbitrary positive constant . In fact, we show that this guarantee can even be achieved by a \emph{succinct dictionary}, that is, by a dictionary that uses space within a factor of the information-theoretic optimum. Finally we also construct a succinct hash table whose probabilistic guarantees fall on a different extreme, offering a failure probability of while using only random bits. This latter result matches (up to low-order terms) a guarantee previously achieved by Dietzfelbinger et al., but with increased space efficiency and with several surprising technical components.
Keywords
Cite
@article{arxiv.2209.06038,
title = {A Hash Table Without Hash Functions, and How to Get the Most Out of Your Random Bits},
author = {William Kuszmaul},
journal= {arXiv preprint arXiv:2209.06038},
year = {2022}
}