A dictionary is a data structure that allows a sequence of on-line insertions, deletions, and lookup operations for keys drawn from a universe U. Typically the size of the dictionary, n, is much smaller than the size of U, and efficient dictionaries are implemented via various hashing schemes. We present a family of hashing algorithms that allow an implementation of a dictionary that is particularly advantageous when the underlying hardware allows the parallelization of hash function computations and the parallelization of memory reads in different memory banks. In this case, our scheme requires exactly one memory cycle for deletes and lookups and constant expected amortized cost for insertions. We use easy-to-compute hash functions and make no unproven assumptions about their randomness properties, or about any property of the keys. According to our analysis, with the Multilevel Hashing Algorithm it is possible to build a dictionary that is able to answer 20 parallel searches among 64,000 entries in less than 5 ps using relatively inexpensive hardware.

Conference: ACM-SIAM Symposium on Discrete Algorithms - SODA, pp. 43-53, 1990

]]>