Recursividad

La recursividad es un método muy utilizado en la programación, el cual nos permite ejecutar una función dentro de sí misma, realizando un proceso muy similar a las iteraciones de los ciclos while y for. Suena algo revoltoso, (y lo es), pero es más fácil explicarlo con ejemplos.

Como vemos, la función recibe el valor de 5, pasa por una condicional (para generar la salida y no hacer un bucle infinito), imprime el valor para mostrar el proceso y después se vuelve a llamar a sí misma pero con un “-1”. Para ahora entrar con un valor de 4, pasar por la condicional, imprimir el valor y después de llamarse otra vez con un “-1”, para volver a entrar con un 3 y así sucesivamente.

Algo interesante, es que el fin de cada iteración va de atrás hacia adelante, es decir, la última iteración es la primera que termina, y la primera es la última en finalizar.

Un ejemplo para visualizar mejor esto último:

Como vemos se va finalizando de manera inversa ¿esto por qué sucede así? Si recordamos cuando utilizamos funciones de manera normal, la ejecución de nuestro código base se “interrumpía” para dar paso al código de la función y luego seguía con nuestro código base. Pues sucede lo mismo con las funciones en recursividad, la primera función que se puede completar es la última, de ahí le da paso a la siguiente para que pueda finalizar y así sucesivamente.

Realizando el ejemplo que hemos utilizado en while y for, calcularemos el factorial usando una función recursiva:

Como vemos, ahora usamos un return, que es para devolver el valor a la función que la está llamando a la hora de realizar el cálculo.

Echando un vistazo más a detalle:

Aquí podemos ver mejor el proceso del decremento de la variable y que es hasta que se empiezan a cerrar las funciones cuando vemos que inicia el cálculo del factorial, porque es cuando entra en función la instrucción return.

Sí, la recursividad es bastante confusa de inicio, pero al dominarla nos ayuda a entender y tener un mejor funcionamiento dentro de nuestros futuros programas.

Dejar un comentario

Diseña un sitio como este con WordPress.com
Comenzar