Partage
  • Partager sur Facebook
  • Partager sur Twitter

Algo de tri

quasi fonctionnel...

Sujet résolu
    16 avril 2012 à 16:00:46

    Bonjour tout le monde! Me voilà face à un problème, sur lequel je bute depuis peu: mon algorithme de tri ne marche pas, je tombe à chaque fois sur l'erreur "Out of bounds exception". Je sais ce que ça veut dire, mais je n'arrive pas à trouver une solution... Quelqu'un pour m'aider?

    Merci d'avance :)

    Le code bloque à la ligne 30.
    import java.util.*;
    
    public class tri{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            final int LENGTH = 20;
            double[] values = new double[LENGTH];
            double[] ordened = new double[LENGTH];
            int currentSize=0;
    
            System.out.println("Entrez les valeurs dans le tableau, finissez par une lettre: ");
            while (in.hasNextDouble()){
                if (currentSize < values.length){
                    values[currentSize] = in.nextDouble();
                    currentSize++;
                }
            }
    
            int pos=0;
            for (int j=0;j<values.length;j++){
                double max = values[0];
                for (int i=0;i<currentSize;i++){
                    if (values[i]>=max){
                        max=values[i];
                        pos=i;
    
                    }
    
                }
                values[pos]=values[currentSize-1];
                currentSize--;
                ordened[j]=max;
    
            }
            System.out.println(Arrays.toString(values));
            System.out.println(Arrays.toString(ordened));        
        }
    }
    

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2012 à 16:56:45

      Salut,

      Le problème vient du fait que tu fais currentSize-- et au bout d'un moment tu à currentSize à 0, sauf que tu fais values[pos]=values[currentSize-1], et si currentSize vaut 0 ca te demande values[-1] et c'est normal ça plante.
      Voila :)
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2012 à 18:32:13

        Ok merci beaucoup, j'ai trouvé comment résoudre le problème aussi (instancier une variable qui a la même valeur de currentSize mais qui elle ne change pas :) )
        • Partager sur Facebook
        • Partager sur Twitter

        Algo de tri

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown