FMNotas técnicasPortfolio
Volver al blog

Informática · Intermedio

Hash tables: búsquedas rápidas y colisiones

Una hash table transforma una clave en una posición. Con una buena distribución, insertar y buscar cuestan O(1) en promedio.

Al terminar esta nota
  • Entender una función hash
  • Visualizar colisiones
  • Distinguir promedio de peor caso
01 / 03

De texto a índice

La función hash debe ser determinista y distribuir claves. El módulo ajusta el resultado a la cantidad de buckets.

js
function hash(key, size) {
  let total = 0;
  for (const char of key) total += char.charCodeAt(0);
  return total % size;
}
02 / 03

Dos claves, un bucket

Una colisión no es un error: es parte del diseño. Separate chaining guarda una pequeña colección dentro de cada bucket; open addressing busca otra posición.

  • Más buckets reducen colisiones y usan más memoria.
  • Una mala función concentra claves.
  • El factor de carga indica cuándo conviene redimensionar.
03 / 03

En producto: usá Map

Implementar la tabla enseña el concepto. En una aplicación JavaScript, Map ya maneja identidad, crecimiento y colisiones de forma robusta.

Laboratorio de tablas hash● interactivo
BUCKET_0
BUCKET_1
BUCKET_2
node
BUCKET_3
react
next
react
Para practicar

Provocá una colisión

Con cuatro buckets, buscá dos palabras que terminen en el mismo índice con la función del ejemplo.

Mostrar una pista

Cambiá el orden de letras: la suma simple tiene limitaciones evidentes.