Recursividad en Java

Entiende la recursividad viendo la pila

Casi nadie se traba con la recursividad por el codigo. Se traba porque no ve lo que pasa en la memoria cuando un metodo se llama a si mismo. Aqui lo vas a ver: marco por marco, linea por linea, y con alguien contandote en palabras que acaba de pasar.

9niveles, de cero a backtracking
23algoritmos que puedes trazar
31preguntas con explicacion
0programas que instalar

Nuevo en el tema? Empieza por Por que recursividad: que cuenta como recursion y que no, cuando conviene frente a un bucle, y en que programas que usas a diario hay recursion adentro.

Empieza por aqui

Este es factorial(5), el ejemplo de siempre. Dale a Reproducir y fijate en una sola cosa: mientras la torre de marcos crece, no se multiplica nada. Cada llamada solo deja anotado lo que le falta por hacer. La multiplicacion de verdad ocurre despues, cuando la torre se derrumba y cada marco recibe el valor que estaba esperando.

Si eso te suena raro ahora, es exactamente por lo que existe esta pagina.

  1. Controles

    Las flechas avanzan y retroceden un paso. Poder devolverte es la mitad del truco: ningun depurador de verdad te deja hacerlo comodo.

  2. Parametros

    Cambia el valor de n y vuelve a ejecutar. Prueba con 1, con 0, y con el maximo, para ver cuando revienta.

  3. Narracion

    La franja de arriba te dice en espanol que se apilo, que devolvio y a quien le toca seguir. No tienes que adivinar por que se movio una cajita.

Y en Sin y con recursion hay once problemas resueltos de las dos formas, con el codigo completo y comentado, y una tabla al final que dice exactamente que se optimizo en cada caso.

Si prefieres aprender haciendo en vez de leyendo, salta directo a Practica: ahi tu manejas la pila a mano, armas metodos pieza por pieza y juegas Torres de Hanoi con el mouse.

La ruta completa

Los niveles van en orden y cada uno se apoya en el anterior. El 0 no tiene ni una linea de recursion: es solo la pila de llamadas, porque sin eso lo demas es magia.

No necesitas cuenta para nada: el curso funciona completo y tu progreso se guarda en este navegador. Si inicias sesion, los resultados quedan guardados en el servidor y tu profesor puede ver en que pregunta se esta trabando el grupo.