Storing a Sparse Table with 0(1) Worst Case Access Time
Journal of the ACM (JACM)
Information Processing Letters
Collections of functions for perfect hashing
SIAM Journal on Computing
More analysis of double hashing
STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing
STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
Journal of the ACM (JACM)
Communications of the ACM
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
The program complexity of searching a table (data structures, applied combinatorics)
The program complexity of searching a table (data structures, applied combinatorics)
The analysis of closed hashing under limited randomness
STOC '90 Proceedings of the twenty-second annual ACM symposium on Theory of computing
Practical minimal perfect hash functions for large databases
Communications of the ACM
Chernoff-Hoeffding bounds for applications with limited independence
SODA '93 Proceedings of the fourth annual ACM-SIAM Symposium on Discrete algorithms
Anti-presistence: history independent data structures
STOC '01 Proceedings of the thirty-third annual ACM symposium on Theory of computing
Uniform hashing in constant time and linear space
Proceedings of the thirty-fifth annual ACM symposium on Theory of computing
Journal of Algorithms
Perfect hash functions for large dictionaries
Proceedings of the ACM first workshop on CyberInfrastructure: information management in eScience
Hi-index | 0.02 |
We consider two hashing models for storing a set S ⊂ {0, 1, 2, …, m - 1} in a table T of size n.The first model uses universal hashing for a partially loaded table. A set of hash functions is universal if, for any the input set, a randomly selected function has an efficient expected performance. Universal hash functions originate in [CW79], where they were used for open hashing using chaining. [CW79] poses as an open question whether comparable results can be achieved for any closed hashing schemes.The second model is perfect hashing for a full table. In preprocessing the input set is used to determine a hash function that achieves some desired performance criteria. This model was used among others in [ME82] and [FKS84].In both models a key problem is to construct a “small” set of functions, which will permit a short description (program) for each function in the set.We show, for the first time, that universal hashing can be successfully used for closed hashing and in particular for double hashing. Specifically, the set of congruential polynomials of &Ogr;(log n) degree is universal for double hashing if the table load is below .75; the program size (or number of random bits generated by the algorithm) is &Ogr;(log log m + log2 n).For perfect hashing, we obtain nearly tight results on the size of oblivious &Ogr;(1)-probe hash functions:Oblivious k-probe hash functions require &OHgr;(n/k2e-k + log log m) bits of description.A probabilistic construction is presented, which shows that oblivious k-probe hash functions, can be specified in &Ogr;(ne-k + log log m) bits, which nearly matches the above lower bound.We give a variation of an &Ogr;(1) time 1-probe (perfect) hash function that can be specified in &Ogr;(n + log log m) bits, which is tight to within a constant factor of the lower bound.In view of the adaptive schemes presented in [FNSS88], these bounds establish a significant gap between oblivious and non-oblivious &Ogr;(1)-probe search.