Los siguientes son ejemplos clásicos de recursividad en la programación de computadoras: el código utilizado en los ejemplos a continuación es Java.
Primero el factorial:
int factorial (int n) {
si (n == 0) {
retorno 1;
}
más {
return (n * factorial (n-1));
}
}
- Cómo encontrar el número máximo de árboles de expansión mínima en un gráfico
- ¿Qué algoritmos debo saber para desarrollar una aplicación web sin conexión primero?
- ¿Cuál es la relación de recurrencia para el tipo de selección?
- Cómo crear un algoritmo que comprima el código binario
- ¿Cuál es la diferencia entre la descomposición de raíz cuadrada y el algoritmo de MO?
Donde si n
es 8, la llamada recursiva realizada en la línea 6 tomará la forma inicial de:
return (8 * factorial (8 – 1);
El resultado será 40, 320.
Un segundo ejemplo es encontrar el máximo común divisor (MCD) de dos enteros:
int gcd (int m, int n) {
if ((m% n) == 0) {
volver n;
}
más {
devuelve mcd (n, m% n);
}
}
Entonces gcd(60, 8)
es igual a 4.
Un tercer ejemplo es Fibonacci, donde la suma de un número en la secuencia es la suma de los dos números anteriores, es decir, 0 1 1 2 3 5 8 13 21 etc. esto se puede escribir como:
int fib (int n) {
si (n <= 1) {
volver n;
}
más {
retorno (fib (n – 1) + fib (n – 2));
}
}
Entonces fib(10)
dará 55 si mis cálculos son correctos.
Otros ejemplos son la Torre de Hanoi, que determina si un número es primo o no, y así sucesivamente. Algunos de estos puedes ver Algoritmos Recursivos.