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 ϕ=an−bs\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^=(1−b(α−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 an−bs≥0an-bs \ge 0 (si bien basta an−bs≥−ban-bs \ge -b). Como s≤αns \le \alpha n, basta que a−bα≥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.