Recursión de Java
Recursividad de Java
En este tutorial, aprenderá sobre la función recursiva de Java, sus ventajas y desventajas.
En Java, un método que se llama a sí mismo se conoce como método recursivo. Y este proceso se conoce como recursividad.
Un ejemplo del mundo físico sería colocar dos espejos paralelos uno frente al otro. Cualquier objeto entre ellos se reflejaría recursivamente.
¿Cómo funciona la recursividad?
En el ejemplo anterior, hemos llamado al recurse()
método desde dentro del main
método. (llamada al método normal). Y, dentro del método recurse(), estamos llamando de nuevo al mismo método recurse. Esta es una llamada recursiva.
Para detener la llamada recursiva, debemos proporcionar algunas condiciones dentro del método. De lo contrario, el método se llamará infinitamente.
Por lo tanto, usamos la declaración if...else (o un enfoque similar) para terminar la llamada recursiva dentro del método.
Ejemplo:factorial de un número usando recursividad
class Factorial {
static int factorial( int n ) {
if (n != 0) // termination condition
return n * factorial(n-1); // recursive call
else
return 1;
}
public static void main(String[] args) {
int number = 4, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
}
}
Salida :
4 factorial = 24
En el ejemplo anterior, tenemos un método llamado factorial()
. El factorial()
se llama desde el main()
método. con el número variable pasada como argumento.
Aquí, observe la declaración,
return n * factorial(n-1);
El factorial()
el método se está llamando a sí mismo. Inicialmente, el valor de n es 4 dentro de factorial()
. Durante la próxima llamada recursiva, 3 se pasa al factorial()
método. Este proceso continúa hasta n es igual a 0.
Cuando n es igual a 0, el if
declaración devuelve falso, por lo tanto, se devuelve 1. Finalmente, el resultado acumulado se pasa al main()
método.
Funcionamiento del Programa Factorial
La imagen a continuación le dará una mejor idea de cómo se ejecuta el programa factorial usando recursividad.
Ventajas y desventajas de la recursividad
Cuando se realiza una llamada recursiva, se asignan nuevas ubicaciones de almacenamiento para las variables en la pila. A medida que regresa cada llamada recursiva, las variables y parámetros antiguos se eliminan de la pila. Por lo tanto, la recursividad generalmente usa más memoria y es generalmente lenta.
Por otro lado, una solución recursiva es mucho más simple y requiere menos tiempo para escribir, depurar y mantener.
Lectura recomendada:¿Cuáles son las ventajas y desventajas de la recursividad?
Java
- Operadores Java
- Interfaz Java
- Prueba de Java con recursos
- Anotaciones Java
- Tipos de anotación de Java
- Método String Length () en Java:cómo encontrar con el ejemplo
- Método Java String charAt() con ejemplo
- Java String termina con () método con ejemplo
- Método Java String replace(), replaceAll() y replaceFirst()
- Cómo invertir una cadena en Java usando recursión
- Java - Anulación