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 :
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à :
while( (j >= 0) && (swap < t[j])){
Au départ je faisait plutot ce test
while( (swap < t[j]) && (j >= 0) ){
et là patatra j'ai le fameux
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 ?
Partager