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 37 38 39 40 41 42 43
|
// constantes
const N = 9;
// var globales
int bmin = 0;
int bmax = N;
int v = -1; // valeur recherchée
int milieu;
int [0..N] tab = [1, 6, 17, 44, 78 , 99, 104, 567, 901, 998];
fonction cherche (int i, int j, int v, int [] t)
// recherche d'une valeur v dans un tableau tab entre les indices i et j
// output : renvoie l'indice de la valeur recherchée ou -1 si absent du tableau
debut
milieu = (i+j) div 2;
si (milieu==v)
alors
return milieu;
sinon
si (v>milieu)
alors
// c'est la borne inférieure du tableau qui progresse
i = milieu + 1;
cherche (i, j, v, t);
sinon
// c'est la borne supérieure du tableau qui diminue
j = milieu;
cherche (i, j, v, t);
finsi
finsi
return -1;
fin
APPEL :
PROGRAM
ecrire("Valeur recherchée ?");
lire(v);
cherche (bmin, bmax, v, tab);
FINPROG |
Partager