Más eficiente

Buenas gente, necesito una mano con este código, necesito volverlo mas eficiente, si me podrían ayudar estaría muy agradecido

lo que esta dentro de el archivo a.in es lo siguiente
2
Mary Beatrice
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 5 6 7 8 9 10 11 12 13

public static void main() throws IOException, ParseException{
       boolean ganador = false;
       cartas = new String[4][13];
       Scanner reader = (new Scanner(new File("a.in")));

            line          = reader.nextLine();
            numero        = new Integer(line);
            line          = reader.nextLine();
            jugadores     = line.split(" ");

            for(int i=0;i<4;i++){
                cartas[i] = (reader.nextLine()).split(" ");
            }
           
            int indicei = 0;
            int indicej = 0;
            int[] extraidas = new int[jugadores.length];
            int menor ;
            String[] jug= new String[jugadores.length];
            int j;
           
            while (!ganador){
                for(int i=0;i<jugadores.length; i++){
                    // extraer
                    extraidas[i] = new Integer(cartas[indicei][indicej]);
                    indicej = (indicej +1) % 14;
                    if (indicej==0) indicei++;                    
                }
               
                menor = 0;
                // se que no son iguales todos
               
                for (int i=0;i<extraidas.length; i++)
                    if (extraidas[i] < extraidas[menor]) menor = i;    
               
                jug = new String[jugadores.length-1];
                j =0;
                //System.out.println("menor: " + jugadores[menor]);

                for(int i=0;i<jugadores.length;i++){
                    if (i!=menor) jug[j++] = jugadores[i];
                 //   System.out.println(jugadores[i]);
                }
                jugadores = jug;
                extraidas = new int[jugadores.length];
                   
                if (jugadores.length == 1) ganador = true;
            }
            System.out.println(jugadores[0]);
    }
}

public static void main() throws IOException, ParseException{
       boolean ganador = false;
       cartas = new String[4][13];
       Scanner reader = (new Scanner(new File("a.in")));

            line          = reader.nextLine();
            numero        = new Integer(line);
            line          = reader.nextLine();
            jugadores     = line.split(" ");

            for(int i=0;i<4;i++){
                cartas[i] = (reader.nextLine()).split(" ");
            }
           
            int indicei = 0;
            int indicej = 0;
            int[] extraidas = new int[jugadores.length];
            int menor ;
            String[] jug= new String[jugadores.length];
            int j;
           
            while (!ganador){
                for(int i=0;i<jugadores.length; i++){
                    // extraer
                    extraidas[i] = new Integer(cartas[indicei][indicej]);
                    indicej = (indicej +1) % 14;
                    if (indicej==0) indicei++;                    
                }
               
                menor = 0;
                // se que no son iguales todos
               
                for (int i=0;i<extraidas.length; i++)
                    if (extraidas[i] < extraidas[menor]) menor = i;    
               
                jug = new String[jugadores.length-1];
                j =0;
                //System.out.println("menor: " + jugadores[menor]);

                for(int i=0;i<jugadores.length;i++){
                    if (i!=menor) jug[j++] = jugadores[i];
                 //   System.out.println(jugadores[i]);
                }
                jugadores = jug;
                extraidas = new int[jugadores.length];
                   
                if (jugadores.length == 1) ganador = true;
            }
            System.out.println(jugadores[0]);
    }
}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

Ayuda más eficiente

import java.util.Scanner;

public class Eficiente{

public static void main(String[] args) throws IOException, ParseException{
       boolean ganador = false;
       cartas = new String[4][13];
       Scanner reader = (new Scanner(new File("a.in")));
            line          = reader.nextLine();
            numero        = new Integer(line);
            line          = reader.nextLine();
            jugadores     = line.split(" ");
            for(int i=0;i<4;i++){
                cartas[i] = (reader.nextLine()).split(" ");
            }
           
            int indicei = 0;
            int indicej = 0;
            int[] extraidas = new int[jugadores.length];
            int menor ;
            String[] jug= new String[jugadores.length];
            int j;
           
            while (!ganador){
                for(int i=0;i<jugadores.length; i++){
                    // extraer
                    extraidas[i] = new Integer(cartas[indicei][indicej]);
                    indicej = (indicej +1) % 14;
                    if (indicej==0) indicei++;                    
                }
               
                menor = 0;
                // se que no son iguales todos
               
                for (int i=0;i<extraidas.length; i++)
                    if (extraidas[i] < extraidas[menor]) menor = i;    
               
                jug = new String[jugadores.length-1];
                j =0;
                //System.out.println("menor: " + jugadores[menor]);
                for(int i=0;i<jugadores.length;i++){
                    if (i!=menor) jug[j++] = jugadores[i];
                 //   System.out.println(jugadores[i]);
                }
                jugadores = jug;
                extraidas = new int[jugadores.length];
                   
                if (jugadores.length == 1) ganador = true;
            }
            System.out.println(jugadores[0]);
    }
}
}

... ¿un juego? me imagino