An Optimal Algorithm for Generating Minimal Perfect Hash Functions

Abstract A new algorithm for generating order preserving minimal perfect hash functions is presented. The algorithm is probabilistic, involving generation of random graphs. It uses expected linear time and requires a linear number of words to represent the hash function, and thus is optimal up to constant factors. It runs very fast in practice.

[1]  Chin-Chen Chang,et al.  A Letter-Oriented Minimal Perfect Hashing Scheme , 1986, Comput. J..

[2]  János Komlós,et al.  Storing a sparse table with O(1) worst case access time , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[3]  Thomas J. Sager A polynomial time generator for minimal perfect hash functions , 1985, CACM.

[4]  P. Erdos,et al.  On the evolution of random graphs , 1984 .

[5]  Edward A. Fox,et al.  LEND and Faster Algorithms for Constructing Minimal Perfect Hash Functions , 1992 .

[6]  Edward A. Fox,et al.  Order-preserving minimal perfect hash functions and information retrieval , 1991, TOIS.

[7]  Giovanni Soda,et al.  An algebraic approach to Cichelli's perfect hashing , 1989, BIT Comput. Sci. Sect..

[8]  Donald E. Knuth,et al.  The Art of Computer Programming, Vol. 3: Sorting and Searching , 1974 .

[9]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[10]  Ted G. Lewis,et al.  Hashing for dynamic and static internal tables , 1988, Computer.

[11]  Gaston H. Gonnet,et al.  Handbook Of Algorithms And Data Structures , 1984 .

[12]  Edward A. Fox,et al.  An O(n log n) Algorithm for Finding Minimal Perfect Hash Functions , 1989 .

[13]  Jan van Leeuwen,et al.  Worst-case Analysis of Set Union Algorithms , 1984, JACM.

[14]  Vincent G. Winters Minimal perfect hashing in polynomial time , 1990, BIT Comput. Sci. Sect..

[15]  Thomas J. Sager A New Method for Generating Minimal Perfect Hash Functions , 1984 .

[16]  Gerhard Jaeschke Reciprocal hashing: a method for generating minimal perfect hashing functions , 1981, CACM.

[17]  Béla Bollobás,et al.  Random Graphs , 1985 .

[18]  Jürgen Ebert A versatile data structure for edge-oriented graph algorithms , 1987, CACM.

[19]  Friedhelm Meyer auf der Heide,et al.  A New Universal Class of Hash Functions and Dynamic Hashing in Real Time , 1990, ICALP.

[20]  Edward A. Fox,et al.  Practical minimal perfect hash functions for large databases , 1992, CACM.

[21]  G. Havas,et al.  Optimal algorithms for minimal perfect hashing , 2022 .

[22]  C. C. Chang The study of an ordered minimal perfect hashing scheme , 1984, CACM.

[23]  Alan L. Tharp,et al.  Near‐perfect hashing of large word sets , 1989, Softw. Pract. Exp..

[24]  Alan L. Tharp,et al.  Perfect hashing using sparse matrix packing , 1990, Inf. Syst..

[25]  Richard J. Cichelli Minimal perfect hash functions made simple , 1980, CACM.

[26]  Kevin Karplus,et al.  Finding minimal perfect hash functions , 1986, SIGCSE.

[27]  B. Bollobás The evolution of random graphs , 1984 .

[28]  Andrew Chi-Chih Yao,et al.  On the Expected Performance of Path Compression Algorithms , 1985, SIAM J. Comput..

[29]  Nick Cercone,et al.  An Interactive System for Finding Perfect Hash Functions , 1985, IEEE Software.

[30]  Béla Bollobás,et al.  On the expected behavior of disjoint set union algorithms , 1985, STOC '85.

[31]  Donald E. Knuth,et al.  The Expected Linearity of a Simple Equivalence Algorithm , 1978, Theor. Comput. Sci..