domingo, 5 de septiembre de 2010

*Recursividad

Materia: Laboratorio de Lenguajes de Programación.
 
Hora: Jueves v1.


Hola compañeros, en esta entrada hablare sobre lo que es recursividad. Para tener un poco más claro lo que vimos en clase.

Se dice que una función recursiva es una función que se llama así misma de manera directa o indirecta a través de otra función. Ahora les explicare como se realiza una función recursiva para resolver un problema, primero se llama a la función recursiva y cuando ya checa todo la función sólo sabe cómo resolver el problema para el caso más sencillo, o caso base, después se llama a la función desde el caso base y ésta sólo devuelve un resultado, pero si se llama a la función desde un problema más complejo la función va a dividir el problema en dos partes, una de las partes va a saber como resolver y la otra parte no sabrá cómo, entonces para que la segunda parte haga la recursividad tiene que replantear el problema original pero con una versión más sencilla o más pequeña que el problema original, entonces como este problema se parece al problema original lo que hace esque se llama a una nueva copia de sí misma para que trabaje con el problema más pequeño. 

El paso recursivo también incluye la palabra reservada return, debido a que su resultado se combinará con la parte del problema que la función sabe cómo resolver para formar un resultado que se pase a la llamada original de la función.

El paso recursivo se ejecuta mientras la llamada a la función original este abierta, es decir, que no termine su ejecución por lo tanto puede generar muchas más de estas llamadas recursivas, mientras la función continúa dividiendo cada problema en dos partes para que la recursividad termine, cada vez que la función se invoca a sí misma con una versión del problema original la función reconoce el caso base, devuelve el resultado a la copia previa de la función y presenta una secuencia de resultados hasta que la función original devuelve el resultado final.



Espero les sea útil la información. Saludos :)






1 comentario: