Pregunta 2.d y 2.e · Prácticas de programación UOC 2021

Tema: Análisis de complejidad y eficiencia · Del examen Prueba de síntesis enero 2021 (2021)

Enunciado

Se facilita la siguiente función recursiva desarrollada en lenguaje C:

#define MAX 42

int guess(int v[MAX], int p, int d)

{

int result;

assert(0 <= p && p < MAX && d > 0);

if (p == 0) {

if (v[0] % d == 0) result = 1; // (1)

else result = 0; // (2)

} else { // (3)

result = guess(v, p-1, d); // (4)

if (v[p] % d == 0) result++; // (5)

} // (6)

return result; // (7)

}

d.

Calcula y argumenta la complejidad asintótica temporal del algoritmo original en su formato recursivo.

e.

Frente a una propuesta alternativa para el método guess con un orden de complejidad casi-lineal (O(nlog⁡n)O(n \log n)), razona en 4 o 5 líneas si convendría adoptar dicha propuesta.

Enunciado: Pregunta 2.d y 2.e · Prácticas de programación UOC 2021

Solución

Según los criterios oficiales de corrección

d. Calcula y argumenta la complejidad asintótica temporal del algoritmo original en su formato recursivo.

Solución: O(n)O(n) o O(p)O(p) (lineal)

e. Frente a una propuesta alternativa para el método guess con un orden de complejidad casi-lineal (O(n log n)), razona en 4 o 5 líneas si convendría adoptar dicha propuesta.

Solución: No convendría en absoluto aceptar dicha propuesta.

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 y 2.e · 2021 · Pregunta 2.d-e · 2021 ›

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