Professional Documents
Culture Documents
Recursividad
Algo recursivo o recurrente es algo que se llama a si mismo. Tiene que
ver con el principio de induccin.
La recursividad consume muchsima memoria, ya que mantiene las
variables del mtodo mientras que se ejecuta, y tambin mucho
tiempo. La recursividad es costosa pero es ms natural, se prefiere.
Por ejemplo, Java no puede implementar de forma recursiva el clculo
del factorial de un milln, pues cualquier computador se quedara sin
memoria, sin embargo, es necesario de implementar para poder
escribir y entender ciertos programas.
Continuacin
3- Ambas se deben disear para converger a la solucin (principio de
convergencia, y que no se salten la condicin de terminacin).
a) Solucin iterativa: se llega a cumplir la condicin de terminacin
(esto se debe garantizar).
b) Solucin recursiva: se debe garantizar que se llegue al caso base.
Principio importante: Toda solucin recursiva puede encontrar una
solucin iterativa equivalente, mientras que lo contrario no siempre
es cierto.
Ejemplo Recursivo
long factorial(long);
int main(){
int num;
cout<<"Entre el numero: ";
cin>>num;
for(int i=0; i<=num; i++)
cout <<setw(2)<<i<<"!="
<<factorial(i)
<< endl;
return 0;}
Continuacin
Iterativa
long factorial(long);
int main()
{
int num, fact;
cout<<"Entre un nmero ";
cin>>num;
resultado=factorial(num);
cout<<"El factorial es:"<<fact
<<endl;
return 0;}
Conclusin
la diferencia que podemos encontrar en la funcin recursiva y la
iterativa es que la recursiva tienes que hacer constantes llamadas en
las funciones que tienes en tu algoritmo o programa, mientras que en
la iterativa no son necesarias tantas llamadas para la solucin del
problema.