Foros del Web » Programación para mayores de 30 ;) » Java »

Algoritmos recursivos en java

Estas en el tema de Algoritmos recursivos en java en el foro de Java en Foros del Web. Hola a todos, Tengo las siguientes dudas en estos 2 ejercicios de recursividad: - Dar una definición recursiva para el máximo de las casillas de ...
  #1 (permalink)  
Antiguo 16/10/2011, 04:14
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Algoritmos recursivos en java

Hola a todos,

Tengo las siguientes dudas en estos 2 ejercicios de recursividad:

-Dar una definición recursiva para el máximo de las casillas de un vector de tamaño n.
Encontrar a partir de la definición anterior una definición recursiva lineal final y
posteriormente un algoritmo iterativo


-Dar una definición recursiva para decidir si todas la casillas de un vector de enteros de
tamaño n son pares. Encontrar a partir de la definición anterior una definición recursiva
lineal final y posteriormente un algoritmo iterativo


Con el primer ejercicio mi duda es que con el metodo .length ya puedo saber el tamaño maximo de las casillas del vector, y con el segundo se hacerlo de manera iterativa, pero a la hora de hacerlo por recursividad no se que caso base poner.

A ver si me podeis echar una mano.

Gracias de antemano.
  #2 (permalink)  
Antiguo 17/10/2011, 01:55
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Algoritmos recursivos en java

Con length sólo obtendrás el tamaño del array, no el número máximo que haya en él (si es que he entendido bien lo que te pedían). Si tienes que dar una función recursiva significa que la función tiene que llamarse a ella misma. Si no recuerdo mal en la recursividad lineal el resultado que se va "arrastrando" no necesita de ninguna operación posterior de ajuste.

Quizá podrías utilizar un método al que le pases dos argumentos, el primero un elemento del array y como segundo argumento un array (podría ser también el índice de inicio).

Para un array el máximo de todos sería el máximo entre: 1º elemento del array y resto del array. Cuando el método entre a calcular el máximo del resto del array se repetiría el proceso, y el caso base sería cuando sólo hubieran 2 elementos.

Para el segundo ejercicio se podría utilizar casi lo mismo pero en vez de obtener el máximo sería ir devolviendo un boolean que te diga si han sido pares los elementos recorridos.
  #3 (permalink)  
Antiguo 17/10/2011, 05:26
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Algoritmos recursivos en java

Hola,

Gracias por la respuesta, pero no lo consigo entender del todo.

En el if para comprobar el caso base que tendria que meter, ¿si el tamaño total del vector es 2, o el elemento del vector que yo le pase por parametros?
Me tiene bastante liado esto de la recursividad porque me cuesta saber cual es el caso base de lo que me piden.
  #4 (permalink)  
Antiguo 19/10/2011, 01:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: Algoritmos recursivos en java

En los dos casos el caso base es que el indice sea igual o mayor a la longitud del vector, se haces un recorrido secuencial.

En el primer caso te da igual hacer el tratamiento antes de la llamada recursiva o despues.

En el segundo en cuanto encuetres uno que no es par ya no tienes que seguir llamando recursivamente. Asi que se deberia hacer antes de la llamada recursiva.

Etiquetas: algoritmos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:42.