Recorrido narrado
Un caso completo
Sigue estas tres operaciones sobre un array con espacio para 6 valores, que empieza como [3, 8, 1]:
leer(2): la cuenta da la dirección del tercer valor y devuelve 1. No se mira ningún otro valor.insertar(1, 6): el hueco va en la posición 1. Se corren 1 y 8 un lugar a la derecha, empezando por el 1. Queda[3, 6, 8, 1]: 2 desplazamientos.borrar(0): el hueco queda en la posición 0. Se corren 6, 8 y 1 un lugar a la izquierda, empezando por el 6. Queda[6, 8, 1]: 3 desplazamientos.
El patrón: leer o escribir una posición no depende de cuántos valores haya. Insertar o borrar en la posición i mueve todos los valores que están después de i.
En la figura están los cuatro estados del ejemplo; las flechas numeradas siguen el orden de los desplazamientos.
función insertar(a, i, x): para j desde longitud(a) − 1 hasta i, bajando: a[j + 1] ← a[j] a[i] ← x longitud(a) ← longitud(a) + 1Su fila en la tabla de costos
Esta es la fila del array en la tabla de costos de la ruta. Cada costo lleva su condición.
| Representación | leer(i) |
insertar o borrar al inicio | insertar al final | borrar al final | insertar o borrar en i |
|---|---|---|---|---|---|
| array estático | O(1) | O(n), peor caso | — (la capacidad es fija) | O(1) | O(n − i) desplazamientos; O(n) en el peor caso |
Lee el recorrido de esta página. Al pasar al siguiente momento, este cuenta como leído.