#Mastery21 #TC1017

Uso de recursion en algoritmos repetitivos

Se dice que una función es recursiva cuando se define en función de si misma.

No todas la funciones pueden llamarse a si mismas, sino que deben estar diseñadas especialmente para que sean recursivas, de otro modo podrían conducir a bucles infinitos, o a que el programa termine inadecuadamente.

Tampoco todos los lenguajes de programación permiten usar recursividad.

C++ permite la recursividad. Cada vez que se llama a una función, se crea un juego de variables locales, de este modo, si la función hace una llamada a si misma, se guardan sus variables y parámetros, usando la pila, y la nueva instancia de la función trabajará con su propia copia de las variables locales. Cuando esta segunda instancia de la función retorna, recupera las variables y los parámetros de la pila y continua la ejecución en el punto en que había sido llamada.

Un ejemplo muy clasico de la recursividad es cuando se quiere crear un programa de gdc (greatest commun divisor), en lo cual se puede llamar a si mismo para volver a hacer el mismo procedimiento una y otra vez hasta que una condición sea rota y pueda salir de la recursividad, así, te puede dar los resultados de manera que corresponda a lo que uno quiere como podemos ver en la foto.

En este ejemplo como podemos ver la funcion “gcd” puede claramente ser llamada en dos situaciones diferentes, tanto cuando a es mayor que b como en el caso de que a es menor que b haciendo dos recursiones, y rompiendola en caso de que a y b sean iguales.

CC BY 4.0 #Mastery21 #TC1017 by Joshua B. G. is licensed under a Creative Commons Attribution 4.0 International License.

Comments are closed.