Saltar al contenido

La condición

Una operación no siempre cuesta lo mismo. Agregar al final de un array que crece suele ser una escritura, pero a veces copia todo. Buscar en una tabla hash (una estructura que calcula dónde guardar cada clave; la verás en la unidad 4) suele mirar una casilla, pero con mala suerte mira muchas.

Por eso un costo se dice con su condición:

  • peor caso: lo máximo que puede costar una operación;
  • amortizado: la media en cualquier secuencia larga de operaciones, aunque alguna cueste mucho;
  • esperado: la media según el azar (por ejemplo, de cómo reparte las claves una tabla hash).

En la figura, el costo de nueve inserciones al final de un array que crece: casi todas cuestan 1, y una cuesta 9.

Peor caso y media de nueve insercionesBarras con el costo de nueve inserciones al final de un array que duplica su capacidad empezando en 1: 1, 2, 3, 1, 5, 1, 1, 1 y 9. Una línea de trazos largos marca el peor caso, 9. Una línea de puntos marca la media de las nueve, 24 entre 9, unas 2,7.operaciones por inserción (escrituras y copias)112233145516171899inserción númeropeor caso: 9amortizado:24 / 9 ≈ 2,7
Nueve inserciones en un array que duplica su capacidad al llenarse (empieza en 1). La barra de la inserción 9 tiene borde grueso: es el peor caso.
Una operación cuesta 1 casi siempre y n cada n operaciones, en momentos fijos y sin azar. En cualquier secuencia larga, la media es menor que 3. ¿Cómo se describe su costo?