What would be the best hashing algorithm if we had the following priorities (in that order):
It doe
Here is the Cuckoo Hash.
Lookup requires inspection of just two locations in the hash table, which takes constant time in the worst case (see Big O notation). This is in contrast to many other hash table algorithms, which may not have a constant worst-case bound on the time to do a lookup.
I think that fits into your criteria of collisions and performance. It appears that the tradeoff is that this type of hash table can only get 49% full.