ya me lo estaba intuyendo, eres un libro abierto para mi
La recursividad es un recurso muy potente, pero que consumen cantidades tremendas de memoria, tanto en la pila de llamadas como en la replicación de todas las variables locales, y por tanto no siempre es la opción mas eficiente.
Como ejemplo de una mala aplicación de la recursividad tenemos la función factorial, es mucho mas rápido, eficiente y apenas consume memoria de la segunda forma
[code]
long Fact(int n)
{
long result;
if (n=1) {
result=1;
} else {
result=n*Fact(n-1);
}
return result;
}
long Fact(int n)
{
long result;
int i;
result=1;
for (i=2; i<=n; i++) {
result*=i;
}
return result;
}
[/code]
Última edición por kezuziyo; 10/07/2010 a las 20:34.
|