Ejercicio 4

Re: Ejercicio 4

de Fernando Fernandez -
Número de respuestas: 0

En realidad al usar x%(2*N) no se está cumpliendo con la letra que dice que la función hash debe ser x%N.

Si la letra no lo pidiera no estaría mal. Se sabe que puede haber hasta 2*N nodos (porque puede haber N actualizaciones). Al hacer la tabla más grande va a haber menos colisiones entre claves y las listas van a ser más cortas. El factor de carga se va a mantener menor a 1. También se podría haber usado 3*N/2 o cualquier otro valor mayor que N. Y tampoco estaría mal usar N pero el factor de carga podría llegar a ser 2.

Con respecto a la primera pregunta se puede afirmar porque es en promedio. Si una clave se actualiza muchas veces la lista en la que está será más larga pero las otras probablemente tengan solo 1 elemento.

Esto no es diferente a una tabla en la que no hay actualizaciones. Puede haber una lista muy larga porque hay muchas colisiones. Recorrer esa lista no es O(1) pero las demás sí. Entonces, en promedio recorrer alguna lista es O(1).