Bonjour à tous,

J'utiliser Java 8 avec Netbeans 8.2.

J'étais en train de coder une simple tri par insertion. et j'ai un problème qui me tracasse depuis le début de cet après midi.

Voila mon code fonctionne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public static void trier(int [] t){    
        int swap;
        int j;
        //int j = 0;
        for (int i= 1; i < t.length ; i++){                                                        
                // on sauvegarde la valeure ) insérer
                swap = t[i];
                j = i -1;
 
                while( (j >= 0) && (swap < t[j])){
                    t[j+1] = t[j];
                    j--;
                }
 
                t[j+1] = swap;                                            
 
 
 
         }// end for
 
    }// endtrier()
Cela fonctionne très bien mais j'ai eu de gros soucis avec cette partie là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
                while( (j >= 0) && (swap < t[j])){
Au départ je faisait plutot ce test

Code : Sélectionner tout - Visualiser dans une fenêtre à part
                while( (swap < t[j]) && (j >= 0) ){
et là patatra j'ai le fameux

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
Et là je ne comprend pas ...

J'ai perdu une demi journée sur ça ...

Est ce quelqu'un pourrais m'expliquer ?