We present a simple dictionary with worst case constant lookup time, equaling the theoretical performance of the classic dynamic perfect hashing scheme of Dietzfelbinger et al. SIAM J. Comput. 23 (4) (1994) 738–761. The space usage is similar to that of binary search trees. Besides being conceptually much simpler than previous dynamic dictionaries with worst case constant lookup time, our data structure is interesting in that it does not use perfect hashing, but rather a variant of open addressing where keys can be moved back in their probe sequences. An implementation inspired by our algorithm, but using weaker hash functions, is found to be quite practical. It is competitive with the best known dictionaries having an average case (but no nontrivial worst case) guarantee on lookup time.
%0 Journal Article
%1 Pagh2004122
%A Pagh, Rasmus
%A Rodler, Flemming Friche
%D 2004
%J Journal of Algorithms
%K cuckoo hashing
%N 2
%P 122 - 144
%R 10.1016/j.jalgor.2003.12.002
%T Cuckoo hashing
%V 51
%X We present a simple dictionary with worst case constant lookup time, equaling the theoretical performance of the classic dynamic perfect hashing scheme of Dietzfelbinger et al. SIAM J. Comput. 23 (4) (1994) 738–761. The space usage is similar to that of binary search trees. Besides being conceptually much simpler than previous dynamic dictionaries with worst case constant lookup time, our data structure is interesting in that it does not use perfect hashing, but rather a variant of open addressing where keys can be moved back in their probe sequences. An implementation inspired by our algorithm, but using weaker hash functions, is found to be quite practical. It is competitive with the best known dictionaries having an average case (but no nontrivial worst case) guarantee on lookup time.
@article{Pagh2004122,
abstract = {We present a simple dictionary with worst case constant lookup time, equaling the theoretical performance of the classic dynamic perfect hashing scheme of Dietzfelbinger et al. [SIAM J. Comput. 23 (4) (1994) 738–761]. The space usage is similar to that of binary search trees. Besides being conceptually much simpler than previous dynamic dictionaries with worst case constant lookup time, our data structure is interesting in that it does not use perfect hashing, but rather a variant of open addressing where keys can be moved back in their probe sequences. An implementation inspired by our algorithm, but using weaker hash functions, is found to be quite practical. It is competitive with the best known dictionaries having an average case (but no nontrivial worst case) guarantee on lookup time. },
added-at = {2013-06-03T00:50:42.000+0200},
author = {Pagh, Rasmus and Rodler, Flemming Friche},
biburl = {https://www.bibsonomy.org/bibtex/2c658564c8b1b48bec1056fe7aaa7fac0/ytyoun},
doi = {10.1016/j.jalgor.2003.12.002},
interhash = {2055df6de276fe7829c6984f63ffd7cb},
intrahash = {c658564c8b1b48bec1056fe7aaa7fac0},
issn = {0196-6774},
journal = {Journal of Algorithms },
keywords = {cuckoo hashing},
number = 2,
pages = {122 - 144},
timestamp = {2013-06-03T00:50:42.000+0200},
title = {Cuckoo hashing },
volume = 51,
year = 2004
}