Está en la página 1de 5

[Año]

Investigación

OLIVIER GONZÁLEZ RENE YAEL


ALEXIS MEZA MORALES
ESTRUCTURA DE DATOS
22BM
Hashing, colisión, agrupamiento y rehashing son términos que están relacionados
con la estructura de datos de tabla hash, utilizada en la programación para
almacenar y recuperar datos de manera eficiente.

• Hashing: es un método que permite asignar un valor único a cada elemento


en una tabla hash utilizando una función hash. Esta función toma una clave
(una cadena de texto, un número, etc.) y la convierte en un número entero (o
hash) utilizando un algoritmo determinístico. Este hash se utiliza como índice
para almacenar y recuperar elementos en la tabla hash.
• Colisión: se produce una colisión cuando dos claves diferentes se asignan al
mismo índice en una tabla hash. Esto puede ocurrir cuando la función hash
no es lo suficientemente robusta para manejar todas las posibles claves que
pueden ingresar en la tabla. Las colisiones pueden ser manejadas de varias
maneras, como el agrupamiento o rehashing.
• Agrupamiento: es una técnica utilizada para manejar colisiones en una tabla
hash. En lugar de almacenar un solo valor en un índice, se almacenan varios
valores en una estructura de datos como una lista vinculada. Cuando se
busca un valor en la tabla hash, la función hash se utiliza para calcular el
índice, y luego se busca en la lista vinculada en ese índice para encontrar el
valor correcto.
• Rehashing: es una técnica utilizada para manejar colisiones en una tabla
hash. Consiste en cambiar la función hash utilizada para asignar claves a
índices en la tabla. Si se producen muchas colisiones con una función hash
determinada, se puede cambiar a una función hash diferente para reducir el
número de colisiones. La tabla hash se reconstruye utilizando la nueva
función hash y los valores originales se vuelven a insertar en la tabla
utilizando la nueva función.

Tablas Hash:

Una tabla hash es el resultado de asignar hashes generados


automáticamente a ciertos términos de búsqueda. Para ello se usa una
función hash, que genera una secuencia de caracteres con una longitud
constante llamada hash. La longitud de la secuencia y los caracteres que la
forman son establecidos por el método hash que se esté utilizando. Este
método se usa, por ejemplo, para proteger datos de acceso frente al robo de
datos.
Algunas de sus características incluyen:

Velocidad de acceso: Las tablas hash proporcionan un acceso muy rápido a


los datos, ya que utilizan una función hash para convertir una clave en un
índice de matriz donde se almacena el valor correspondiente. El acceso a un
valor en una tabla hash es O (1), lo que significa que es muy eficiente y no
depende del tamaño de la tabla.

Manejo de colisiones: Las colisiones son situaciones en las que dos o más
claves diferentes tienen el mismo valor hash y, por lo tanto, deben ser
almacenadas en la misma posición de la tabla hash. Las tablas hash tienen
técnicas para manejar colisiones, como la resolución de colisiones por
encadenamiento y la resolución de colisiones por sondas.

Capacidad dinámica: Las tablas hash pueden crecer o encogerse


dinámicamente a medida que cambian los datos almacenados en la tabla.
Esto significa que la tabla hash puede aumentar su capacidad a medida que
se agregan más elementos, o disminuir su capacidad a medida que se
eliminan elementos.

Eficiente para búsquedas y eliminaciones: Las tablas hash son muy


eficientes para búsquedas y eliminaciones de elementos. Debido a que la
búsqueda de un elemento en la tabla hash se realiza a través de la función
hash, el tiempo de búsqueda es independiente del tamaño de la tabla y es
muy rápido.

Uso en algoritmos y aplicaciones: Las tablas hash se utilizan en muchos


algoritmos y aplicaciones, como la búsqueda de cadenas, la indexación de
bases de datos, la implementación de tablas de símbolos y la deduplicación
de datos.

Sus funciones son:

1. Almacenamiento de datos: Las tablas hash se utilizan para almacenar


datos en una estructura de datos que permite un acceso rápido y
eficiente a los mismos.

2. Búsqueda de datos: Las tablas hash permiten la búsqueda de datos


en una estructura de datos de forma rápida y eficiente, mediante el
uso de una función hash que convierte una clave en un índice de
matriz donde se almacena el valor correspondiente.
3. Eliminación de datos: Las tablas hash permiten la eliminación de datos
almacenados en la estructura de datos de forma eficiente, lo que
permite la actualización de la información almacenada.

4. Actualización de datos: Las tablas hash permiten la actualización de


los datos almacenados en la estructura de datos de forma eficiente, lo
que permite la modificación de la información almacenada.

5. Manejo de colisiones: Las tablas hash tienen técnicas para manejar


colisiones, que son situaciones en las que dos o más claves diferentes
tienen el mismo valor hash y, por lo tanto, deben ser almacenadas en
la misma posición de la tabla hash.

6. Uso en algoritmos y aplicaciones: Las tablas hash se utilizan en


muchos algoritmos y aplicaciones, como la búsqueda de cadenas, la
indexación de bases de datos, la implementación de tablas de
símbolos y la deduplicación de datos.
Referencias:
González, L. (2020, November 10). Algoritmo Agrupamiento Jerárquico - Práctica -
Aprende IA. Aprende IA. https://aprendeia.com/algoritmo-agrupamiento-jerarquico-
practica/
¿Qué es una función hash? (2022, May 25). KeepCoding Tech School.
https://keepcoding.io/blog/que-es-una-funcion-hash/
Sedgewick, R., & Wayne, K. (2011). Algoritmos (4th ed.). Addison-Wesley
Profesional. Capítulo 3: Searching.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2015). Data Structures and
Algorithms in Python. Wiley. Capítulo 5: Hash Tables. de
http://xpzhang.me/teach/DS19_Fall/book.pdf
Tablas hash: acceso rápido a valores hash desde la base de datos. (s/f). IONOS
Digital Guide. Recuperado el 9 de marzo de 2023, de
https://www.ionos.mx/digitalguide/servidores/seguridad/tablas-hash/

También podría gustarte