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
| 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 = Math.min((premiertier * 2), tableau.length-1);
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 = Math.min((premiertier * 2), tableau.length-1);
}
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");
} |
Partager