



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Resumen sobre Tablas Hash que incluye conceptos básicos, función hash, universal hashing, colisiones y métodos para solucionar colisiones
Tipo: Resúmenes
1 / 5
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Una tabla de hash es una estructura de datos que asocia claves únicas con valores mediante una función hash. Su principal objetivo es resolver el problema de la búsqueda ineficiente en grandes colecciones de datos. Mientras que una búsqueda lineal en una lista tiene complejidad O(n), las tablas hash ofrecen, en promedio y bajo condiciones adecuadas, un tiempo de acceso O(1) (tiempo constante). El análisis teórico de su eficiencia se basa en la suposición de hashing simple uniforme (Simple Uniform Hashing Assumption), aunque en la práctica se aproxima mediante técnicas como el universal hashing. Ejemplos de uso en la vida real:
La estructura consiste en un arreglo de posiciones llamadas buckets o cubetas. Cada entrada almacena un par (clave, valor). Las claves deben ser hasheables, lo que generalmente implica que sean inmutables. Operaciones principales:
La función hash transforma una clave arbitraria en un índice entero dentro del tamaño de la tabla (m). Propiedades de una buena función hash:
El universal hashing consiste en utilizar una familia de funciones hash donde la probabilidad de colisión entre cualquier par de claves distintas es ≤ 1/m. Este concepto es fundamental para garantizar el análisis teórico del rendimiento esperado en O(1). Ejemplos de funciones hash:
Se recomienda que m sea un número primo grande para mejorar la distribución.
Una colisión ocurre cuando dos claves distintas producen el mismo índice:
Las colisiones son inevitables debido al principio del palomar (pigeonhole principle), ya que el espacio de claves posibles suele ser mucho mayor que el tamaño de la tabla (m). Si no se manejan correctamente, pueden degradar el rendimiento hasta O(n) en el peor caso.
Cada bucket apunta a una lista enlazada (u otra estructura) que contiene los elementos que colisionan en esa posición. Ventajas:
Cuando el factor de carga supera un umbral, se crea una tabla más grande (normalmente el doble del tamaño y preferiblemente primo) y se reinsertan todos los elementos.
Las tablas hash son más rápidas en promedio que los árboles binarios equilibrados (O(log n)), aunque estos últimos mantienen el orden de las claves, lo cual es útil para consultas por rango.
Ventajas:
Las tablas de hash son una de las estructuras de datos más importantes en informática por su capacidad de ofrecer acceso casi instantáneo a grandes volúmenes de información. Su eficiencia depende de una buena función hash, una estrategia adecuada de resolución de colisiones, el control del factor de carga y técnicas de redimensionamiento. Gracias a estas características, siguen siendo fundamentales en sistemas modernos, desde lenguajes de programación hasta bases de datos distribuidas y cachés de alto rendimiento. El estudio de sus variantes avanzadas (como cuckoo hashing o perfect hashing) continúa siendo un área activa de investigación.