¿Qué es el hashing perfecto?

De acuerdo con Wikipedia:

En informática, una función hash perfecta para un conjunto S es una función hash que asigna elementos distintos en S a un conjunto de enteros, sin colisiones. En términos matemáticos, es una función inyectiva total.

¿Por qué querrías un mapeo uno a uno de elementos establecidos a enteros?

Porque cuando está construyendo una tabla hash, asignar dos elementos al mismo número significa que intentará poner dos cosas diferentes en la misma ranura. Esto hace que la inserción y recuperación de elementos con o cerca de este valor hash sea un poco más lenta. En el peor de los casos, podría convertir lo que debería ser una búsqueda de tiempo constante en una de tiempo lineal, aunque incluso las colisiones en el peor de los casos pueden ralentizar las cosas lo suficiente como para importar en un código de tiempo crítico.