Saltar al contenido

Las tres situaciones de una posición

Texto
función buscar(t, k):    i ← hash(k) mod t.capacidad    mientras t.estado[i] ≠ vacía:        si t.estado[i] = ocupada y t.clave[i] = k:            devolver t.valor[i]        i ← (i + 1) mod t.capacidad    devolver nada
  • vacía: nunca hubo nada; corta la búsqueda.
  • ocupada: hay una clave; si es k, se devuelve, si no, se sigue.
  • borrada: hubo una clave; se sigue.
Las tres situaciones de una posiciónTabla de 8 posiciones. Las posiciones 0 a 4 están vacías, con borde punteado. La 5 está ocupada por 5, la 6 está borrada, con una cruz, y la 7 está ocupada por 21. Buscar 21 empieza en la posición 5: sondeo 1, ocupada y no es 21, sigue; sondeo 2, borrada, sigue; sondeo 3, ocupada y es 21, se devuelve.01234556×721*1 ocupada: no es 21, sigue2 borrada: sigue3 ocupada: es 21, se devuelvebuscar 21: 21 mod 8 = 5vacía: corta la búsquedaocupada: hay una clave×borrada (lápida): sigue
Con una lápida en la posición 6, la búsqueda del 21 continúa y lo encuentra. Una posición vacía, en cambio, la habría cortado.

El factor de carga importa más que en el encadenamiento: con la tabla casi llena, los sondeos se alargan mucho, porque las claves forman grupos contiguos que crecen y se juntan. Por eso el límite de carga suele estar entre 0,5 y 0,875, y las lápidas cuentan como carga.

Su fila en la tabla de costos

La tabla con direccionamiento abierto y sondeo lineal, en las columnas de conjunto y diccionario de la ruta. La condición cambia: ahora la carga tiene que mantenerse por debajo del límite, y las lápidas cuentan.

Representación buscar(k) insertar(k) borrar(k)
tabla hash con sondeo lineal O(1) esperado con la carga acotada; O(n) en el peor caso O(1) esperado y amortizado O(1) esperado, con lápida

Lee el recorrido de esta página. Al pasar al siguiente momento, este cuenta como leído.