Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7b Recursividad PDF
7b Recursividad PDF
Utilidad
Cuando la solución de un problema se puede expresar en
términos de la resolución de un problema de la misma naturaleza,
aunque de menor complejidad.
Divide y vencerás:
Un problema complejo se divide en otros problemas más sencillos
(del mismo tipo)
return resultado;
}
fact(0)
1
n=0
fact(1)
1
n=1 n=1 n=1
fact(2) 2
n=2 n=2 n=2 n=2 n=2
fact(3) 6
fact(4) n = 3 n=3 n=3 n=3 n=3 n=3 n=3
24
n=4 n=4 n=4 n=4 n=4 n=4 n=4 n=4 n=4
tiempo
Ejemplo
static int potencia (int x, int n)
{
if (n==0) // Caso base
return 1;
else // Caso general
return x * potencia(x,n-1);
}
n=0
x=5 1
n=1 n=1 n=1
x=5 x=5 x=5 5
n=2 n=2 n=2 n=2 n=2
x=5 x=5 x=5 x=5 x=5 25
n=3 n=3 n=3 n=3 n=3 n=3 n=3
x=5 x=5 x=5 x=5 x=5 x=5 x=5 125
Cálculo de 53
- La carga computacional
(tiempo de CPU y espacio en memoria)
asociada a las llamadas recursivas.
- La redundancia
(algunas soluciones recursivas
resuelven el mismo problema en repetidas ocasiones).
- La complejidad de la solución
(en ocasiones, la solución iterativa es muy difícil de encontrar).