Zusammenfassung der Ressource
Recursividad
- Es un algoritmo que expresa la solución de un problema en términos
de una llamada a sí mismo, a eso se le conoce como llamada
recursiva o recurrente.
- Ejemplo de Recursividad
- Serie Fibonacci: Se generan mediante el
establecimiento de dos valores que son F0 = 0, F1 = 1, y
aplicarlos a la fórmula siguiente: Fn = Fn-1 + Fn-2
- Las funciones se llaman a
sí mismas, así se evita el uso de bucles y
otros iteradores y deja de hacerlo
cuando se cumple la condición de
parada.
- Tipos
- Recursividad directa
- Se presenta cuando el método se manda
llamar a sí mismo dentro de su propio cuerpo
de instrucciones.
- Recursividad Indirecta
- Se manifiesta cundo un método llama a
otro y dentro del segundo se manda llamar
al primero.
- Existe la llamada a métodos de forma
encadenada y al terminar el último
método llamado, transfiere el control al
anterior, hasta llegar al método que inicio
la serie de llamadas.
- Métodos Recursivos
- Divide y vencerás
- Permite resolver
problemas dividiendo el
problema original en
subproblemas más
pequeños.
- Backtracking
- Se caracteriza por
recorrer todo el espacio
de soluciones del
problema en busca de la
solución óptima (o la
primera solución).
- Ventajas y
Desventajas
- Ventaja: Es una función muy poderosa capaz de
enumerar cualquier estructura arbitraria por
compleja que sea.
- Desventaja: Es más lento y ocupa más espacio en
memoria
- Recursividad vs. Iteración
- 1.- Se realiza una repetición.
- Iteración: repite el cuerpo del bucle.
- Recursividad: repite las llamadas al
método recursivo.
- 2.- Tiene una condición de terminación.
- Iteración: termina cuando se imcumple
la condición de continuación del bucle.
- Recursividad: termina cuando una
llamada alcanza el caso base,
desencadenando una secuencia de
vuelta atrás.
- 3- El diseño de ambas deben converger
a la solución (principio de convergencia,
y que no se salten la condición de
terminación).
- Iteración: se llega a cumplir la condición
de terminación (esto debe
garantizarse).
- Recursividad: se debe garantizar que
se llegue al caso base.