August 2001 | Rasmus Pagh & Flemming Friche Rodler
Cuckoo hashing is a dictionary data structure that provides worst-case constant lookup time, matching the theoretical performance of dynamic perfect hashing. It uses two hash tables and two hash functions to store keys, ensuring that each key is placed in one of the two tables. The scheme is simple to implement and has space usage similar to binary search trees, with three words per key on average. Extensive experiments show that cuckoo hashing is competitive with other methods, especially when the dictionary is small enough to fit in cache. It is particularly efficient in terms of lookup time and has a simple implementation. The paper compares cuckoo hashing with other methods like chained hashing, linear probing, and double hashing, showing that it performs well in both average and worst-case scenarios. The analysis shows that cuckoo hashing has a constant expected time for insertions and lookups, with a small probability of requiring a rehash. The paper also discusses the theoretical foundations of cuckoo hashing, including its use of universal hash functions and the analysis of its performance under various conditions. Overall, cuckoo hashing is a practical and efficient solution for dictionary operations with worst-case constant lookup time.Cuckoo hashing is a dictionary data structure that provides worst-case constant lookup time, matching the theoretical performance of dynamic perfect hashing. It uses two hash tables and two hash functions to store keys, ensuring that each key is placed in one of the two tables. The scheme is simple to implement and has space usage similar to binary search trees, with three words per key on average. Extensive experiments show that cuckoo hashing is competitive with other methods, especially when the dictionary is small enough to fit in cache. It is particularly efficient in terms of lookup time and has a simple implementation. The paper compares cuckoo hashing with other methods like chained hashing, linear probing, and double hashing, showing that it performs well in both average and worst-case scenarios. The analysis shows that cuckoo hashing has a constant expected time for insertions and lookups, with a small probability of requiring a rehash. The paper also discusses the theoretical foundations of cuckoo hashing, including its use of universal hash functions and the analysis of its performance under various conditions. Overall, cuckoo hashing is a practical and efficient solution for dictionary operations with worst-case constant lookup time.