A Family of Perfect Hashing Methods

Minimal perfect hash functions are used for memory efficient storage and fast retrieval of items from static sets. We present an infinite family of efficient and practical algorithms for generating order preserving minimal perfect hash functions. We show that almost all members of the family construct space and time optimal order preserving minimal perfect hash functions, and we identify the one with minimum constants. Members of the family generate a hash function in two steps. First a special kind of function into an r-graph is computed probabilistically. Then this function is refined deterministically to a minimal perfect hash function. We give strong theoretical evidence that the first step uses linear random time. The second step runs in linear deterministic time. The family not only has theoretical importance, but also offers the fastest known method for generating perfect hash functions.

[1]  G. Gonnet,et al.  On Lambert's W Function , 1993 .

[2]  William Feller,et al.  An Introduction to Probability Theory and Its Applications , 1967 .

[3]  George Havas,et al.  Graph-theoretic obstacles to perfect hashing , 1993 .

[4]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[5]  George Havas,et al.  Graphs, Hypergraphs and Hashing , 1993, WG.

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

[7]  E. Palmer Graphical evolution: an introduction to the theory of random graphs , 1985 .

[8]  Jeanette P. Schmidt,et al.  The analysis of closed hashing under limited randomness , 1990, STOC '90.

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

[10]  Joel H. Spencer,et al.  Sudden Emergence of a Giantk-Core in a Random Graph , 1996, J. Comb. Theory, Ser. B.

[11]  Richard A. Duke Types of Cycles in Hypergraphs , 1985 .

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

[13]  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).

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

[15]  Alan Siegel,et al.  On universal classes of fast high performance hash functions, their time-space tradeoff, and their applications , 1989, 30th Annual Symposium on Foundations of Computer Science.

[16]  Peter K. Pearson,et al.  Fast hashing of variable-length text strings , 1990, CACM.

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

[18]  Jon Louis Bentley Programming pearls: a sample of brilliance , 1987, CACM.

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

[20]  Yossi Matias,et al.  Polynomial Hash Functions Are Reliable (Extended Abstract) , 1992, ICALP.

[21]  Rajiv Gupta,et al.  On randomization in sequential and distributed algorithms , 1994, CSUR.

[22]  George Havas,et al.  An Optimal Algorithm for Generating Minimal Perfect Hash Functions , 1992, Inf. Process. Lett..

[23]  Larry Carter,et al.  Universal Classes of Hash Functions , 1979, J. Comput. Syst. Sci..

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

[25]  Larry Carter,et al.  New classes and applications of hash functions , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

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

[27]  Edward A. Fox,et al.  A faster algorithm for constructing minimal perfect hash functions , 1992, SIGIR '92.

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

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