Académique Documents
Professionnel Documents
Culture Documents
TP5 : Programmation C
1 Algorithmes de recherche
Dans ce TP, vous allez programmer des algorithmes de recherche. Le premier est une simple recherche
linéaire. Le second, plus efficace, suit la méthode dichotomique.
EXERCICE 1
La recherche linéaire consiste à rechercher séquentiellement, c’est-à-dire, en parcourant les éléments de la
liste un à un en partant du premier.
Ecrire un programme qui réalise la recherche linéaire d’une valeur dans un tableau.
EXERCICE 2
La recherche dichotomique est une méthode très efficace. Le principe de l’algorithme est de diviser l’espace
de recherche de l’élément en deux espaces de même taille. L’élément recherché est dans l’un des deux
espaces. La recherche se poursuit dans l’espace qui contient l’élément recherché selon la même méthode.
Cette méthode impose que les éléments soient ordonnés, et que l’accès aux éléments soit direct (sinon la
méthode perd toute son efficacité).
Une première version de l’algorithme de recherche dichotomique est la suivante:
Algorithme: RechercheDichotomique
val,haut,bas,milieu,n : entiers;
Tab : tableau[n] d’entiers;
trouve : entier;
Début
Lire(val);
trouve ← 0; bas← 1; haut← n;
Tant que (trouve=0 et bas ≤ haut) faire
milieu ← (bas+haut)/2;
Si (Tab[milieu]=val) Alors
trouve←1;
Sinon
Si (Tab[milieu] < val) Alors
bas←milieu+1;
Sinon
haut← milieu-1;
Fin Si
Fin Si
Fait
Si (trouve=1) Alors
Ecrire(”elt trouve pos:”,milieu);
Sinon
Ecrire(”elt non trouve”);
Fin Si
Fin
EXERCICE 3
Ecrire un programme qui réalise la recherche dichotomique d’une valeur dans un tableau non trier.
Remarque:
Trier le tableau avant d’appliquer la recherche dichotomique.