2. Explicación
Si un algoritmo es ‘recursivo’ es un subprograma
(procedimiento o función) que se llama a sí mismo.
En pascal los procedimientos y las funciones pueden ser
definidos de modo recursivo.
La recursividad es una alternativa a la iteración o repetición, y
aunque en tiempo de ejecución y en ocupación de memoria es
una solución menos eficiente, existen numerosas situaciones
en las que la recursividad es una solución simple y natural a un
problema que en caso contrario será difícil de resolver.
Por esta razón se puede decir que la recursividad es una
herramienta potente y útil en la resolución de problemas que
tengan naturaleza recursiva.
3. Un objeto se considera recursivo si el mismo figura
dentro de su propia definición.
Un subprograma para poder catalogarse como
recursivo debe contener siempre las dos partes o
sentencias siguientes:
Una llamada a sí mismo, donde normalmente el valor de
los parámetros cambia en cada llamada.
Una condición de salida o de terminación, que es la
condición que no produce ninguna autollamada.
4. Tipos de recursividad
Directa (Simple): Un subprograma se llama a sí
mismo una o más veces directamente.
Indirecta (mutua): Un subprograma A llama a otro
subprograma B y este a su vez llama al subprograma A.
5. Factores para considerar
Tiempo de su ejecución: son más lentos que las
repeticiones.
Espacio de memoria ocupado por el algoritmo: Estos
algoritmos recursivos ocupan más espacio.
Pero:
Legibilidad y facilidad de comprensión: la
recursividad conduce a soluciones que son más fáciles de
leer y comprender que su correspondiente solución
iterativa. También las definiciones recursivas se
caracterizan por su elegancia y simplicidad en contraste
con la dificultad y falta de claridad de las definiciones
repetitivas.