Pregunta 2.d · Prácticas de programación UOC 2023

Tema: Análisis de complejidad y eficiencia · Del examen Prueba de síntesis de Prácticas de programación (Enero de 2023) (2023)

Enunciado

Pregunta 2. Análisis y desarrollo recursivo e iterativo de la función mystery

Pregunta 2 (50% de la nota). Análisis y desarrollo recursivo e iterativo de la función mystery

Considera el siguiente código implementado en C correspondiente a la función mystery:

int mystery(int x, int y) {

int res;

assert(x >= 0 && y >= 0);

if (y != 0) // (1)

res = x + mystery(x, y - 1); // (2)

else // (3)

res = 0; // (4)

return res; // (5)

}

d)

[15%] Formula la ecuación de recurrencia que modela el coste temporal de la versión recursiva original y resuélvela por el método de sustitución iterativa para deducir su orden de complejidad asintótica en función del tamaño de entrada.

Enunciado: Pregunta 2.d · Prácticas de programación UOC 2023

Solución

Según los criterios oficiales de corrección

d) Formula la ecuación de recurrencia que modela el coste temporal de la versión recursiva original

Solución: T(0)=k1T(0) = k_1 T(y)=k2+T(y−1)T(y) = k_2 + T(y - 1) para y>0y > 0

d) Resuélvela por el método de sustitución iterativa

Solución: T(y)=k2+T(y−1)T(y) = k_2 + T(y - 1) =k2+(k2+T(y−2))=2k2+T(y−2)= k_2 + (k_2 + T(y - 2)) = 2k_2 + T(y - 2) =3k2+T(y−3)= 3k_2 + T(y - 3) =…= \dots =i⋅k2+T(y−i)= i\cdot k_2 + T(y - i) Para y−i=0⇒i=yy - i = 0 \Rightarrow i = y, se obtiene: T(y)=y⋅k2+T(0)=y⋅k2+k1T(y) = y\cdot k_2 + T(0) = y\cdot k_2 + k_1

d) Deducir su orden de complejidad asintótica en función del tamaño de entrada

Solución: O(y)O(y)

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Pregunta 2.d - Análisis de complejidad y eficienc… · 2023 · Pregunta 2.d y 2.e · 2021 ›

Más ejercicios de Análisis de complejidad y eficiencia