Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/04/2011, 12:18
Flipis120
 
Fecha de Ingreso: noviembre-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: como buscar los dos numeros mas grandes de un array?

Hola, yo tengo este código, que busca el máximo de un Array de forma recursiva.

Código:
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {



        int vector[] = {2, 1, 3, 9, 5, 6, 4, 8, 7};//Vector de numeros
        int max = 0;//Variable que contendrá el número
        max = mayorVector(vector);//Función Recursiva

        if (vector[vector.length - 1] > max) {              //Ultima Comprobación
            max = vector[vector.length - 1];
        }
        System.out.println("Del Vector:");
        for (int i = 0; i < vector.length; i++) {
            System.out.print(vector[i] + " ");
        }
        System.out.println("");
        System.out.println("El mayor es " + max);

    }

    public static int mayorVector(int vector[]) {

        int vector2[] = new int[vector.length - 1];         //Vector al que le voy quitando la última posición
        int max = 0;                                                      //Variable que recibirá de la función el máximo momentaneo

        for (int i = 0; i < vector2.length; i++) {              //Igualo los vectores
            vector2[i] = vector[i];
        }

        if (vector.length == 1) {                                       //Para de hacer recursión cuando solo quede una posición en el vector que se le pasa a la función
            max = vector[0];

        } else {
            max = mayorVector(vector2);

            if (max < vector[vector.length - 1]) {              //Si el max que se tiene es menor que el ultimo elemento del array se le asigna el valor
                max = vector[vector.length - 1];

            }
        }
        return max;
    }
}
Un saludo!