2. • La recursividad es una técnica de programación elemental que permite que una
función pueda llamarse asimismo desde la misma función.
• Se puede utilizar la recursividad como una alternativa a la iteración.
• La recursividad es una herramienta poderosa e importante en la resolución de
problemas en programación.
• Una solución recursiva es normalmente menos eficiente en términos de tiempo de
computadora que una solución iterativa debido a las operaciones auxiliares que llevan
consigo las llamadas suplementarias a las funciones
• No todas las funciones pueden llamarse a sí 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.
3. • 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 sí 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 continúa la ejecución en el punto en que había sido llamada.
• Por ejemplo para calcular el factorial de cualquier número mayor que cero hay que
calcular como mínimo el factorial de otro número. La función que se utiliza es la
función en la que se encuentra en estos momentos, esta función debe llamarse a sí
misma para el número menor inmediato, para poder ejecutarse en el número actual.
4. • La recursividad es una de las formas de control más importantes en la
programación. La recursividad es la forma más natural de representación de
muchos algoritmos.
• El concepto de recursividad está ligado, en los lenguajes de programación, al
concepto de procedimiento o función. Un procedimiento o función es recursivo
cuando durante una invocación a él puede ser invocado a su vez él mismo.
• El conocimiento de los principios fundamentales de la recursividad evita evadir su
utilización cuando su aplicación sea conveniente para un determinado problema.
• El uso de la recursividad es particularmente conveniente para aquellos problemas
que pueden definirse de modo natural en términos de recursividad.
5. Ventajas:
• No es necesario definir la secuencia de pasos exacta para resolver el problema.
• Soluciones simples, claras.
• Soluciones elegantes.
• Soluciones a problemas complejos.
Desventajas:
• Podría ser menos eficiente.
• Sobrecarga asociada con las llamadas a subalgoritmos
• Una simple llamada puede generar un gran número de llamadas Recursivas. (Fact(n) genera n llamadas recursivas)
• El valor de la recursividad reside en el hecho de que se puede usar para resolver problemas sin fácil solución
iterativa.
• La ineficiencia inherente de algunos algoritmos recursivos.