There is a good introduction here (downloadable PDF) on Cuckoo Hashing. The basic idea behind Cuckoo Hashing is that you use two hashing algorithms instead of one. If both possible hash locations already have occupants, one of the tenants is thrown out, and sent packing to it's alternative hash location. This process is repeated until all the keys are safely housed.





