Las tablas hash le permiten almacenar un montón de objetos de tal manera que luego pueda encontrarlos nuevamente muy rápidamente . Como tal, puede usarlos para implementar la noción de un conjunto, donde las pruebas para la membresía del conjunto y la adición de nuevos elementos al conjunto son excepcionalmente rápidas (sin embargo, las uniones e intersecciones de conjuntos no son particularmente rápidas). Los conjuntos son útiles para todo tipo de cosas, como eliminar duplicados. Por ejemplo, puede averiguar qué palabras se usan en un archivo de texto de manera muy efectiva utilizando un conjunto de hash.
Al asociar un puntero o referencia a otro objeto con cada clave que se está almacenando en la tabla hash, también puede usarlos para hacer matrices o mapas asociativos. Por ejemplo, puedo asignar palabras a su frecuencia. Proceso un archivo de texto y busco cada palabra en el mapa. Si la palabra no estaba allí, la agrego con la frecuencia 1. Si existiera, incrementaría su frecuencia. Ahora hemos construido un histograma de palabras.
Muchos usos de la tabla hash también se pueden lograr utilizando árboles de búsqueda binarios, pero las tablas hash son a menudo más rápidas y no requieren que los objetos estén en una relación de orden.
- ¿Por qué Google dice que 'Global University' es una de las mejores universidades?
- No entiendo las torres recursivas del problema de Hanoi. ¿Qué es?
- Cómo representar un número binario, como 110110011, en exceso de código 511
- ¿Cuáles son los problemas de programación que resolvió que le hicieron decir "¡Guau! ¡Lógica asombrosa"?
- ¿Por qué alguien usa el hashing cuando el peor tiempo de búsqueda del hashing es O (n) y eso para bbst es logn?
Algunas aplicaciones aleatorias que me hacen pensar en tablas hash:
- Juego de vida. El hash es un conjunto de coordenadas de cada célula viva.
- Un tipo primitivo de Google podría asignar todas las palabras existentes a un conjunto de URL donde aparecen esas palabras. Esto implicaría tablas hash dos veces: una para asignar las palabras a los conjuntos de URL, y luego otra para almacenar cada conjunto de URL.
- Al implementar árboles de múltiples vías, las tablas hash a veces se usan para permitir un acceso rápido a cualquier hijo de un nodo interno.
- Al escribir un programa de ajedrez, es sensato hacer un seguimiento de las posiciones que se han evaluado anteriormente, para que pueda retroceder cada vez que se encuentre en la misma posición. Esto se hace usando una tabla hash.
- Espacios de nombres! Cualquier lenguaje de programación debe poder asignar un nombre de variable a su dirección en la memoria. De hecho, en muchos lenguajes de secuencias de comandos, como Javascript y Perl, los campos se pueden agregar a los objetos dinámicamente. Esto significa que los objetos pueden ser utilizados como mapas hash.
- … esta lista puede continuar indefinidamente …