Un hash es como el primer nombre de una persona; es una forma breve de recordar a una persona, aunque no tiene que ser única. Si necesita encontrar información sobre alguien, puede ponerlos por su nombre, y solo necesita realizar otros controles si dos o más personas tienen el mismo nombre. Ese es el poder de hash, y así como recordar personas es mucho más fácil por nombre que por Número de Seguridad Social, encontrar un objeto por su código es mucho más fácil que comparar el objeto con todo lo que ya está en su colección.
Ahora, en este ejemplo, si busca a alguien en una guía telefónica por nombre, probablemente los encuentre en el tiempo O (log n), porque los nombres están ordenados alfabéticamente y porque necesita hacer una búsqueda binaria Sin embargo, si en lugar de eso has "pirateado" a 100 personas nacidas en los años 1900 por sus años de nacimiento, solo necesitarías como máximo 4 comparaciones en la tabla/libro telefónico (una por dígito) para encontrar un año por medio de hash, que es tiempo constante. Entonces, si dos personas nacen de la misma manera, puede usar otra información para encontrar a la persona que necesita y, en promedio, si su tabla no está demasiado llena (por ejemplo, si tiene como máximo 50 personas durante 100 años diferentes de nacimiento), sus búsquedas serán constantes.
(Si la tabla se vuelve más que, por ejemplo, el 50% de su capacidad, siempre se puede duplicar su tamaño, para mantener el número de colisiones de baja y por lo tanto para mantener sus operaciones de búsqueda rápida.)
Más información :
Si alguna vez ha oído hablar de
MD5 o SHA-1
SHA-2 hashes para archivos, son como las "huellas dactilares" del archivo. Si bien es posible tener dos archivos con el mismo hash, esto es tan improbable que, para fines prácticos, es imposible; por lo tanto, si tiene el hash de dos archivos, puede comparar los archivos por sus huellas digitales en lugar de por sus datos, que es inmensamente más rápido.
Tenga cuidado: Hay algoritmos hash, y hay hashtables, que son estructuras de datos que utilizan un algoritmo hash (específicamente, una forma de implementar un mapa/matriz asociativa). Te refieres a lo último pero dices "hash", que generalmente se refiere a un algoritmo hash o al resultado de un algoritmo hash. – delnan