Este es un metodo de un algoritmo recursivo que calcula el factorial:
int factorial(int n){
if(n==0) return 1; //AXIOMA
else return n*factorial(n-1); //FORMULA RECURSIVA
}
Recursividad directa: cuando un método P contiene dentro de si un llamado a si mismo.
Recursividad indirecta: cuando un método contiene dentro de si un llamado a otro método Q que contiene llamados (directos o indirectos) a P.
Variables locales
Si un método recursivo utiliza variables locales, estas serán creadas para cada invocación del método. Las variables locales (y sus valores) serán visibles sólo en la correspondiente invocación (cada invocación del procedimiento tiene su propia área de datos).
Cada invocación a un procedimiento requiere de cierto espacio de memoria, el que sólo es liberado al terminar la ejecución de éste. El espacio de memoria disponible es limitado.
Los métodos recursivos son normalmente más lentos y consumen más memoria que sus equivalentes no recursivos.
Fuente: Franco Guidi Polanco
No hay comentarios:
Publicar un comentario