Pregunta 2.c · Prácticas de programación UOC Juny 2020
Tema: Análisis de complejidad y eficiencia · Del examen Juny (2020)
Enunciado
A partir del código C de la función recursiva guess:
#define MAX 64
void guess (int v[MAX], int x, int value)
{
assert (0 <= x && x <= MAX);
if (x > 0) // (1)
{ // (2)
if (v[x-1] > value) v[x-1] = value; // (3)
guess(v, x-1, value); // (4)
}
}
c)
[30%] Deduce formalmente la complejidad computacional del algoritmo en su versión recursiva.

Solución
Según los criterios oficiales de corrección
Deduce formalmente la complejidad computacional del algoritmo en su versión recursiva.
Solución: Tomando como tamaño del problema el parámetro (número de elementos pendientes por procesar): - Caso base (): solo se evalúa la condición de parada del `if`, por lo que . - Caso recursivo (): se realizan comparaciones y asignaciones elementales de coste constante más una llamada recursiva con tamaño : Desplegando la recurrencia: Por lo tanto, la complejidad temporal es de orden lineal: (o siendo ). La complejidad espacial en la pila de llamadas también es debido a los marcos de activación anidados.
Complejidad temporal asintótica
Solución: /
Complejidad espacial asintótica
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-e · 2021 · Pregunta 2.c - Análisis de complejidad · Juny 2020 ›