Pregunta 2.d · Prácticas de programación UOC 2023
Tema: Análisis de complejidad y eficiencia · Del examen Examen de síntesis. Prácticas de programación (Enero 2023) (2023)
Enunciado
Pregunta 2 (50%). Análisis y desarrollo de método recursivo e iterativo
Se facilita el código siguiente escrito en lenguaje C correspondiente a una función denominada mystery. Cabe recordar que el operador de división / aplicado entre cantidades enteras calcula la división truncada (cociente entero):
void mystery (int x)
{
int res;
assert(x >= 0); // (1)
if (x >= 2) // (2)
res = 1 + mystery(x / 2); // (3)
else // (4)
res = 1; // (5)
return res; // (6)
} Nota: Aunque la firma original indica void, la rutina incluye sentencias return res; devolviendo un entero.
d)
[15%] Evalúa el coste temporal en el peor caso del procedimiento original recursivo, justificando con rigor analítico la formulación matemática de la recurrencia y su deducción.

Solución
Según los criterios oficiales de corrección
d. [15%] Evalúa el coste temporal en el peor caso del procedimiento original recursivo, justificando con rigor analítico la formulación matemática de la recurrencia y su deducción.
Solución: En cada nivel de la recursión se verifica una condición booleana simple y se realizan operaciones aritméticas básicas de tiempo constante (), acompañadas de una llamada interna con el tamaño del problema reducido a la mitad (). La recurrencia asociada a la función temporal queda delimitada formalmente como: Desplegando la recurrencia mediante sustitución progresiva durante etapas: El caso base se alcanza cuando el argumento se reduce a la unidad o inferior, es decir: Reemplazando el valor de en la ecuación general obtenida: Se concluye, por consiguiente, que el algoritmo presenta una complejidad asintótica de orden logarítmico: .
Orden de complejidad asintótica final:
Solución: /
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 ›