Encyclopedia of Algorithms

2016 Edition
| Editors: Ming-Yang Kao

Minimal Perfect Hash Functions

  • Paolo BoldiEmail author
  • Sebastiano Vigna
Reference work entry
DOI: https://doi.org/10.1007/978-1-4939-2864-4_794

Years and Authors of Summarized Original Work

  • 1984; Fredman, Komlós

  • 1984; Mehlhorn

  • 1996; Majewski, Wormald, Havas, Czech

  • 2001; Hagerup, Tholey

  • 2004; Chazelle, Kilian, Rubinfeld, Tal

  • 2007; Botelho, Pagh, Ziviani

  • 2009; Belazzougui, Botelho, Dietzfelbinger

Problem Definition

A minimal perfect hash function (MPHF) is a (data structure providing a) bijective map from a set S of n keys to the set of the first n natural numbers. In the static case (i.e., when the set S is known in advance), there is a wide spectrum of solutions available, offering different trade-offs in terms of construction time, access time, and size of the data structure.

Problem Formulation

Let[x] denote the set of the first x natural numbers. Given a positive integer u=2w,and a set \(S \subseteq [u]\)


Minimal perfect hash functions 
This is a preview of subscription content, log in to check access.

Recommended Reading

  1. 1.
    Belazzougui D, Botelho FC, Dietzfelbinger M (2009) Hash, displace, and compress. In: Fiat A, Sanders P (eds) Algorithms – ESA 2009, 17th annual European symposium, Copenhagen, 7–9 Sept 2009, proceedings, pp 682–693Google Scholar
  2. 2.
    Botelho FC, Pagh R, Ziviani N (2007) Simple and space-efficient minimal perfect hash functions. In: Dehne FKHA, Sack JR, Zeh N (eds) Proceedings of the WADS 2007, 10th international workshop on algorithms and data structures, Halifax. Lecture notes in computer science, vol 4619. Springer, pp 139–150Google Scholar
  3. 3.
    Chazelle B, Kilian J, Rubinfeld R, Tal A (2004) The Bloomier filter: an efficient data structure for static support lookup tables. In: Munro JI (ed) Proceedings of the fifteenth annual ACM-SIAM symposium on discrete algorithms, SODA 2004, New Orleans. SIAM, pp 30–39Google Scholar
  4. 4.
    Fredman ML, Komlós J (1984) On the size of separating systems and families of perfect hash functions. SIAM J Algebr Discret Methods 5(1):61–68MathSciNetzbMATHCrossRefGoogle Scholar
  5. 5.
    Gog S, Petri M (2014) Optimized succinct data structures for massive data. Softw Pract Exp 44(11):1287–1314CrossRefGoogle Scholar
  6. 6.
    Hagerup T, Tholey T (2001) Efficient minimal perfect hashing in nearly minimal space. In: Ferreira A, Reichel H (eds) STACS 2001, 18th annual symposium on theoretical aspects of computer science, Dresden, 15–17 Feb 2001, proceedings, pp 317–326Google Scholar
  7. 7.
    Jacobson G (1989) Space-efficient static trees and graphs. In: 30th annual symposium on foundations of computer science (FOCS ’89), Research Triangle Park. IEEE Computer Society, pp 549–554CrossRefGoogle Scholar
  8. 8.
    Majewski BS, Wormald NC, Havas G, Czech ZJ (1996) A family of perfect hashing methods. Comput J 39(6):547–554CrossRefGoogle Scholar
  9. 9.
    Mehlhorn K (1984) Data structures and algorithms 1: sorting and searching. EATCS monographs on theoretical computer science, vol 1. Springer, Berlin/New YorkCrossRefGoogle Scholar
  10. 10.
    Patrascu M (2008) Succincter. In: 49th annual IEEE symposium on foundations of computer science, Philadelphia. IEEE Computer Society, pp 305–313Google Scholar
  11. 11.
    Vigna S (2008) Broadword implementation of rank/select queries. In: McGeoch CC (ed) 7th international workshop on experimental algorithms, WEA 2008, Provincetown. Lecture notes in computer science, vol 5038. Springer, pp 154–168Google Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Dipartimento di InformaticaUniversità degli Studi di MilanoMilanoItaly
  2. 2.Dipartimento di InformaticaUniversità degli Studi di MilanoMilanoItaly