Title: Recursividad
1Recursividad
Un objeto se dice que es recursivo si él mismo forma parte de su definición.
- Ejemplos de objetos recursivos
- Una locomotora es un tren
- Un tren es un vagón enganchado a un tren
- El factorial de 0 es 1
- El factorial de un numero natural es el producto
de dicho numero por el factorial de su antecesor
2Algoritmo recursivo
Un programa o algoritmo se denomina recursivo si está directa o indirectamente basado en sà mismo
3Algoritmo recursivo
- Todo programa recursivo debe tener
- Condición de parada o punto conocido del dominio
que ponga fin a la recursividad. - Al menos una llamada a sà mismo. (invocación
recursiva)
4Algoritmo recursivo Ejemplo
Ejemplo Factorial 1
si n 0 Fact (n)
n Fact (n-1) si n gt 0
Algoritmo Function fact(n integer)integer
/ calcula n! / Begin if (n 0) then fact
1 else fact n
fact(n-1) End
5Cómo se evalúa un algoritmo recursivo?
fact (5) 5 fact (4) fact (4) 4 fact
(3) fact (3) 3 fact (2) fact (2) 2 fact
(1) fact (1) 1 fact (0) fact(0) 1
120
Ejemplo factorial, n5
24
6
2
1
1
6Ventajas
- Soluciones elegantes y fáciles de entender.
- Soluciones más simples.
7Desventajas
Si la profundidad de la recursión (es decir, el
número de invocaciones recursivas) es muy grande
puede traer problemas de memoria RAM y se produce
un desbordamiento. Ocurre cuando el problema es
demasiado grande para la memoria RAM o cuando no
converge al valor del punto de parada (error de
diseño de la solución)
8Programación Orientada a Objetos