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.

Fuentes de Información

El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.

Dar puntos
72 Puntos
Votos: 12 - T!score: 6/10
  • 2 Seguidores
  • 24.813 Visitas
  • 12 Favoritos

Comentarios Destacados

@ChuloXeneize Hace más de 3 años +8
Recursividad
Recursividad

Recursividad

Recursividad

Recursividad

Recursividad

10 comentarios

@ChuloXeneize Hace más de 3 años +8
Recursividad
Recursividad

Recursividad

Recursividad

Recursividad

Recursividad
@martincostas Hace más de 3 años +3
esta bieeeeen!!
suma sucesiva
@groundlee Hace más de 3 años
martincostas dijo:esta bieeeeen!!
Recursividad en Java + Ejemplo

@tambocandelario Hace más de 3 años
ChuloXeneize dijo:Recursividad
Recursividad

Recursividad

Recursividad

Recursividad

Recursividad
@251182 Hace más de 3 años +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 Hace más de 2 años +1
Grax a ti comprendi algo que no comprendia sobre recursividad, de nuevo Gracias
@Sid_Kane Hace más de 2 años +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 Hace más de 2 años +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 Hace más de 2 años +1
Sorry, me equivoque y te di solo 9
@DCATFOR Hace más de 2 años
@DARK0NEMESIS jajajaja, no te preocupes, igual se aprecia