Recursividad en Java + Ejemplo

Por ahi tengo compañeros que les servirá de mucho estos ejemplos y no solo a ellos, si no a otras personas que también van iniciando y les interesa aprender.


NOTAS:* Esto es creado con fines educativos y de fomentar el conocimiento, NO LA FLOJERA!
**Comentarios Constructivos son bien recibidos, los destructivos realmente no.



Para empezar con lo que es la recursividad, sepamos primeramente que es, se trata mas que nada de un método que se mande a llamar a si mismo, ya sea una(Recursividad Simple) o mas veces(Recursividad Múltiple) haciendo un reemplazo de métodos directos como formulas que mas adelante les demostraré.

Ahora empezamos con algo sencillo, supongamos que queremos hacer una suma sucesiva del mismo número, la cuál esta operación equivaldrá a la multiplicación.

El método para realizar una multiplicación podría ser de la siguiente manera:

public static void multiplicacion(int a,int b){
//Recuerdese que "int a" e "int b", son parametros que recibe el método y que muy posiblemente los ocupará según el código escrito.

System.out.println(a*b);
//Como se marca con negritas "a*b", es la operación de multiplicación que se esta mandando a imprimir en pantalla directamente

//Ahora bien, para probarlo basta solo un par de lineas de código para ejecutarlo desde el main, como les muestro a continuación:


Recursividad en Java + Ejemplo

Como se dan cuenta ya mando valores estáticos de 2 y 5, mostrando como resultado 10. (duh)
mandandolo de esa u otras formas similares, se supone de forma iterativa, ahora hagamoslo de multiplicación a suma sucesiva usando un ciclo FOR.


java

Como pueden ver, uso el FOR para hacer una suma sucesiva tomando 'a' como las veces que sumare 'b' en 'R' inicializada en cero




Pero esas dos fueron de forma Iterativa, ahora hagámonos de manera recursiva.

Para esto, es necesario entender que tenemos que hacer una idea sobre como funciona la recursiva, primero les muestro en código y después desgloso parte por parte para que entiendan de algún modo el como funciona la recursividad.

dijo:public static int sumasucesiva(int a,int b){
if(a>1){
return incog(a-1,b)+b;
}else{
return b;
}
}[/quote]

Aqui arribita citando, esta el código.


Nota:
La recursividad tambien de cierta forma es un ciclo porque necesita marcarse su limite.


Revisando el código, vemos que también recibe 2 parámetros 'a' y 'b', y si lo notan, hay condicional If/Else los cuales servirán para marcar el limite del ciclo. Mientras 'a' sea mayor que 0, entonces se retorna el mismo método MAS 'b', aplicando la recursividad por llamarse a si mismo, y con los parámetros son (a-1,b), para ir descontando 'a' y no hacerlo infinito.

1*-Suponiendo que los valores recibidos en la función es a=4 y b=3, entonces el método retorna al mismo método mas 'b' , pero con los parámetros del método en el retorno de (a-1,b) osea, (3,3).

2*-Se manda los parámetros tales que a=3 y b=3, entonces sue vuelve a llamar a si mismo.

3*-Y esta vez es a=2 y b=3.

4*-Por ultima vez se repite el proceso y entonces a=1 y b=3 , Ahora que se trata de llamar a si misma la función, no cumple con la condicional If ya que a=1 y b=3 , haciendo referencia ala condición "a>1" no se cumple, entonces aplica el Else, regresando el puro valor de 'b'.


Contando las veces que fueron, son 4 veces las que se sumaron, por lo cual se puede notar que 'a' sirvió de contador.

Aquí les muestro el código levemente modificado para que aparezcan en pantalla ciertos detallitos que reconocerán a lo antes mencionado.

Explicacion


Por lo que debe salir algo similar a esto,


tutorial



recursividad



Espero les halla sido de utilidad. Saludos.

Comentarios Destacados

@ChuloXeneize +8
Recursividad
Recursividad

Recursividad

Recursividad

Recursividad

Recursividad

10 comentarios - Recursividad en Java + Ejemplo

@ChuloXeneize +8
Recursividad
Recursividad

Recursividad

Recursividad

Recursividad

Recursividad
@251182 +1
eu... estoy aprendiendo java... empecé con just basic... queria saber si alguien tenia un tutorial para principiantes en java pero solo se ocupe de la parte de la codificación... gracias
@Silver506 +1
Grax a ti comprendi algo que no comprendia sobre recursividad, de nuevo Gracias
@Sid_Kane +1
Si no es mucho pedir, le entiendo más cuando lo "ejecutan", digamos que nos das lo que hace, ejemplo:
De la suma, i vale 0, como i es mayor a 0 y se específica 2, i vale 2, se repite el procedimiento y ahora i vale 4 ... i vale 10, al ejecutarse 5 veces, la aplicación termina.

La verdad esta es la única manera en la que entiendo, así como lo pones esta bien pero me cuesta demasiado

Te dejo 10 ahorita y más en otros post si me ayuda con eso porfa, mucho más si hace un tutorial para dummies
@DARK0NEMESIS +1
Bien, justo me han dejado un ejercicio en netbeans de esto, gracias a ti podre elevar mi nota en métodos de programación; ahí te van mis 10 de este día.
@DARK0NEMESIS +1
Sorry, me equivoque y te di solo 9
@DCATFOR
@DARK0NEMESIS jajajaja, no te preocupes, igual se aprecia