Table des matières
Le principe de cette recherche avec une sentinelle est simple. Il consiste à remplacer provisoirement la dernière valeur du tableau par la valeur recherchée. Cette valeur est placée volontairement en « sentinelle » (d’où le nom de cet algorithme) pour la trouver dans tous les cas. Ainsi, il suffit de parcourir le tableau (d’entiers ou caractères) jusqu’à trouver cette valeur. Puis vérifier que c’est bien la valeur cherchée et non celle qui a été placée en « sentinelle ».
Le programme demande une valeur. Si la valeur est trouvée, il affiche son indice. Sinon, il indique que la valeur est absente.
Parfois le tableau sur lequel doit s’effectuer la recherche est trié (par ordre croissant par exemple). Dans ce cas, on peut améliorer l’algorithme de recherche en effectuant moins de comparaisons.
Le principe est le suivant: comparer la valeur cherchée avec celle se situant au milieu du tableau :
L’espace de recherche dans les sous tableaux successifs diminue à chaque étape. Il faut alors arrêter si le sous tableau contient une seule valeur. Il suffit alors de comparer la valeur cherchée avec cette valeur pour déterminer si la recherche est fructueuse.
Une boucle principale parcourt le tableau t avec l’indice k. Elle appelle une macro (de type boucle) qui compare les valeurs de t à partir de k (avec l’indice i ) avec les valeurs de x indexés par j. La variable ok passe à 1 (vrai) si la séquence x correspond.