Saltar a Contenido

Parametrizando la solución

Consideremos que, o bien para ahorrar espacio o bien para mejorar el tiempo, decidimos que el arreglo no se duplicará necesariamente, sino que expandirá su tamaño a αn\alpha n para alguna constante α>1\alpha>1, de modo que a lo sumo usaremos αn\alpha n celdas de memoria al haber leído nn elementos. Nos preguntamos cuál es el costo amortizado.

La forma más fácil de analizar el costo de inserción con este parámetro es modificar la función potencial, que seguirá siendo de la forma ϕ=anbs\phi=an-bs para constantes adecuadas aa y bb. Para la inserción elemental tenemos entonces ci=1c_i=1 y Δϕi=a\Delta\phi_i=a, dando un costo amortizado de ci^=1+a\hat{c_i} = 1+a. Para la expansión de tamaño s=ns=n a tamaño s=αns = \alpha n tenemos ci=nc_i = n y Δϕi=b(α1)n\Delta\phi_i = -b(\alpha-1)n, lo cual nos da ci^=(1b(α1))n\hat{c_i} = (1-b(\alpha-1))n. Para que esto sea independiente de nn (es decir, cero como antes) debemos tener b=1α1b = \frac{1}{\alpha-1}.

Por otro lado, para que ϕnϕ0\phi_n \ge \phi_0 podemos pedir que anbs0an-bs \ge 0 (si bien basta anbsban-bs \ge -b). Como sαns \le \alpha n, basta que abα0a - b\alpha \ge 0, lo cual significa que podemos elegir a=αα1a = \frac{\alpha}{\alpha-1}. El costo amortizado, dominado por el de la inserción elemental, es entonces 1+αα1=2α1α11+\frac{\alpha}{\alpha-1} = \frac{2\alpha-1}{\alpha-1}. Nuestro primer análisis correspondía entonces al caso particular α=2\alpha=2, mientras que ahora podemos ahorrar espacio (aumentando el costo por operación) o reducir el costo por operación (aumentando el espacio). En todo caso, el costo por operación sigue siendo constante si el espacio extra es proporcional a nn.

generating algorithms by Puspito from the Noun Project. © 2026 Me. Built with VitePress.