static void Algoritmo(MatingPool Pool, int Repeticiones)
    {
        while(Repeticiones > 0)
        {
            ArrayList<Lista> NuevaPoblacion = new ArrayList<>();
            
            NuevosCandidatos.clear();
            
            System.out.println("\nNUEVOS CANDIDATOS BASADOS EN EL PORCENTAJE DE FITNESS Y UN RANDOM:\n");
            for(int i = 0; i < Pool.getListas().size(); i++)
            {           
                NuevosCandidatos.add(Pool.getCandidato(RandomDecimal(0, 1)));
                System.out.print("Nuevo candidato: ");
                //Si es nulo significa que no se encontro un intervalo para el resultado del random en la ruleta y esto es solo 
                //posible si todos los porcentajes son 0%, es decir ningun candidato es valido para tomarse en cuenta.
                if(NuevosCandidatos.get(i) != null)
                {
                    System.out.println(NuevosCandidatos.get(i).getList().toString());
                    
                    System.out.println();
                    System.out.println();
                }
                else
                {
                    System.out.println();
                    System.out.println("ERROR: TODOS LOS PORCENTAJES SON 0%");
                    TieneSolucion = false;
                    break;
                }
            }
            
            if(!TieneSolucion)
            {
                break;
            }
            System.out.println("\nCRUCES DE LOS CANDIDATOS\n");
            for(int i = 0; i < NuevosCandidatos.size(); i++)
            {
                Lista Candidato = NuevosCandidatos.get(i);

                System.out.println("Candidato:");
                System.out.println(Candidato.getList().toString());
                System.out.println();
                
                Candidato.CruceOrden(RandomEntero(0,(Candidato.getList().size()/2)), 
                                     RandomEntero((Candidato.getList().size()/2),Candidato.getList().size()-1));
                NuevaPoblacion.add(Candidato);
                
                System.out.println("Permutacion:");
                System.out.println(Candidato.getList().toString());
                System.out.println();
            }
            System.out.println("\nNUEVA POBLACION GENERADA DE LOS CRUCES\n");
            for(int i = 0; i < NuevaPoblacion.size(); i++)
            {
                System.out.println(NuevaPoblacion.get(i).getList().toString());
                System.out.println();
            }
            System.out.println("\nNUEVA MATING POOL\n");
            Pool.setListas(NuevaPoblacion);
            Pool.Calcular();
            Pool.Show();
            
            Repeticiones--;
        }
    }