Algorithme de recherche Trichonomique
Salut à tous,
Je tente de régler un petit algorithme de recherche dans un tableau et j'ai des problèmes d'exécution. Je suis débutant à ce niveau.
Voila ce que j'ai :
La valeur x est celle que je cherche
78 ici comme exemple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| int tableau[] = { 2, 4, 10, 22, 34, 40, 56, 61, 78, 90 };
int x = 78;
int debut = 0;
int fin = 9;
int premiertier = (debut + fin) / 3;
int deuxiemetier = (premiertier * 2);
while ((debut < fin) && (x != tableau[premiertier])) {
if (x < tableau[premiertier]) {
fin = premiertier;
}
else if (x > tableau[deuxiemetier]) {
debut = deuxiemetier;
}
else {
debut = premiertier;
fin = deuxiemetier;
}
premiertier = (debut + fin) / 3;
deuxiemetier = (premiertier * 2);
}
if (tableau[premiertier] == x) {
System.out.println("La valeur " + x + " se trouve à la position "
+ premiertier);
}
else {
System.out.println("La valeur n'a pas été trouvée");
} |
Voici le message d'erreur que j'obtiens :
Citation:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at dicho3.main(dicho3.java:17)
Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?
Merci d'avance pour votre aide.