Recursión de Java: métodos recursivos (con ejemplos)

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 de forma recursiva.

¿Cómo funciona la recursividad?

Trabajo de la recursividad de Java

En el ejemplo anterior, hemos llamado al recurse()método desde dentro del mainmétodo. (llamada al método normal). Y, dentro del método recurse (), volvemos a llamar al mismo método recurse. Esta es una llamada recursiva.

Para detener la llamada recursiva, necesitamos proporcionar algunas condiciones dentro del método. De lo contrario, el método se llamará infinitamente.

Por lo tanto, usamos la instrucción if… else (o un enfoque similar) para terminar la llamada recursiva dentro del método.

Ejemplo: factorial de un número mediante 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(). Se factorial()llama desde el main()método. con la variable numérica pasada como argumento.

Aquí, observe la declaración,

 return n * factorial(n-1);

El factorial()método se llama a sí mismo. Inicialmente, el valor de n es 4 adentro factorial(). Durante la siguiente llamada recursiva, se pasa 3 al factorial()método. Este proceso continúa hasta que n es igual a 0.

Cuando n es igual a 0, la ifdeclaración devuelve falso, por lo que se devuelve 1. Finalmente, el resultado acumulado se pasa al main()método.

Trabajo del programa factorial

La siguiente imagen le dará una mejor idea de cómo se ejecuta el programa factorial usando recursividad.

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 los parámetros antiguos se eliminan de la pila. Por lo tanto, la recursividad generalmente usa más memoria y generalmente es 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?

Articulos interesantes...