M. en C. Erika Vilches

Anuncio
Recursión
M. en C. Erika Vilches
Los programas que hemos visto hasta
ahora están estructurados como métodos
que se llaman unos a otros de manera
disciplinada y jerárquica.
Para algunos problemas, sin embargo, es
útil tener un método que se llame a si
mismo.
Un método con esas características es
llamado método recursivo
Un método recursivo puede ser llamado
directamente o indirectamente a través de
otro método.
Cuando se llama a un método recursivo para
resolver un problema, el método es capaz de
resolver únicamente el caso más sencillo, o
el caso base.
Si el método es llamado con el caso base, el
método regresa un resultado.
Si el método es llamado con un problema más
complejo, el método divide el problema en dos
piezas conceptuales
Una pieza que el método sabe como hacer
Una pieza que el método no sabe como
hacer (versión más pequeña del problema
original)
Para ese segundo caso, se el método se
llama a si mismo nuevamente para
trabajar en el problema mas pequeño →
Llamada recursiva o paso recursivo
El paso recursivo normalmente contiene un
enunciado return, porque su resultado se
combinará con la porción del problema que
el método sabe resolver para formar un
resultado que será devuelto al caller
original.
El paso recursivo se ejecuta mientras la
llamada original al método aún esta activa
(no ha terminado de ejecutar).
El paso recursivo puede resultar en muchas
mas llamadas recursivas mientras el
método divide cada nuevo subproblema en
dos piezas conceptuales.
Para que termine eventualmente la
recursión, cada vez que el método se llama
a si mismo con una versión mas simple del
problema original, la secuencia de
problemas cada vez mas pequeños debe
converger en un caso base.
En ese punto, el método reconoce el caso
base y regresa un resultado a la copia
previa del método.
Una secuencia de returns sucede hasta que
la llamada original al método regresa el
resultado final.
Solución recursiva al problema de factorial
Descargar