Vous êtes sur la page 1sur 4

UE 13 : Les algorithmes de recherche séquentielle dans un tableau

Exemple d’actions :
 Ecrire l’algorithme de recherche séquentielle dans un tableau ;
 Ecrire l’algorithme de recherche du maximum ou du minimum dans un tableau ;

Introduction
Vous connaissez déjà la structure linéaire de type tableau pour lequel les éléments de même
type le composant sont placés de façon contigüe en mémoire. Pour créer un tableau, à 1 ou 2
dimensions, il faut connaître sa taille qui ne pourra être modifiée aucours du programme, et
lui associer un indice pour parcourir ses éléments. Pour les tableaux la séquence correspond
aux numéros des cases du tableau. On accède à un élément du tableau directement grâce à
son indice.

Soit le tableau à 1 dimension suivant nommé Tablo :


Pour atteindre la troisième case du tableau il suffit d'écrire Tablo[2] qui contient 10, car les
valeurs de l’indice commencent à 0.

I. Manipulation d’un tableau


Avant d’effectuer une opération donnée sur un tableau, il faut d’abord le créer.

1) Création d’un tableau


Syntaxe : t[taille] : Type

Exemple :
t[10] : Tableau d'Entier
Je viens de déclarer un tableau d’entiers de 10 cellule.

Autre syntaxe : nom_tab : tableau [1…n] de entiers

Exemple : tableau_Notes : tableau [1…10] de réels

2) Affectation d’une donnée dans le tableau


Syntaxe : t[i] ← donnée ;
T[2] ← 4 ; //j’affecte la valeur 4 à la 3ème position.

3) Opération dans un tableau


Exemple : T[4] ← T[2]+ T[3] ; //j’additionne les valeurs contenues dans les cellules
2 et 4 et je mets le résultat dans la 5ème cellule.

PAR OVONO BENG 1


II. Recherche séquentielle ou linéaire dans un tableau
C‘est un algorithme pour trouver une valeur dans une liste. Elle consiste
simplement à considérer les éléments de la liste les uns après les autres, jusqu'à ce
que l'élément soit trouvé, ou que toutes les cases aient été lues. Elle est aussi
appelée recherche par balayage.
Principe : La recherche séquentielle consiste à prendre les éléments de la
liste les uns après les autres, jusqu'à avoir trouvé la cible, ou avoir épuisé la liste.
On considère un tableau d’entiers et d’éléments. On cherche à construire un algorithme
permettant de savoir si le tableau contient une valeur x.
Objectif : Rechercher une information dans un tableau
 Méthode : séquentielle
 Soit T un tableau de N éléments et val l’élément cherché
 Parcours du tableau à partir du premier élément (T[0])
 Arrêt quand élément trouvé ou si fin de tableau (T[n-1]).
Activité :
Algorithme recherche_sequentielle
/*Recherche le premier indice où se trouve la valeur val parmi les N
données du tableau tab; affiche l’indice et la valeur si la valeur est
trouvée.*/

variables : T [0, N-1] : entier


n, val, indice : entier
Début
indice ←0 ;
tant que ( val <> T[indice] && indice < N-1) faire
indice ←indice + 1 ;
ftq
si T[indice] = val alors
afficher("L'élément :" val "se trouve à l’indice : " indice);
sinon
afficher("Elément non présent");
fsi
Fin

III. Recherche du maximum ou du minimum dans un tableau


L'un des exercices classiques d'initiation à la programmation consiste à rechercher le
maximum et le minimum dans un tableau d'entiers. La recherche s'effectue en considérant
le premier élément du tableau étant le maximum (resp. Minimum), et en parcourant le
tableau itérativement, si à l'itération i la valeur se trouvant à l'indice i est supérieure (resp.
Inférieure) à la valeur considérée maximale (resp. Minimale) au préalable, la valeur à l'indice
i devient alors le maximum (resp. Minimum).

PAR OVONO BENG 2


Algorithme recherche_maximum

variables : T [0, N-1] : entier


n : entier
Début
max ← T[0] ;
pour i allant de 1 à n faire
si T[i]> max alors
max ←T[i];
finsi
finpour
afficher("Le max est : " max);

Fin

####################################################################

Algorithme recherche_minimum

variables : T [0, N-1] : entier


n : entier
Début
min ← T[0] ;
pour i allant de 1 à n faire
si T[i]> min alors
min ←T[i-1];
finsi
finpour
afficher("Le min est : " min);

Fin

####################################################################

Algorithme MinMax

Var
T: tab[0..n]: entier;
min, max, i: entier;

Début
min ← T[0];
max ← T[0];
pour i allant de 2 à n Faire
Si (T[i] < min) Alors
min ← T[i];
Sinon
Si (T[i] > max) Alors

PAR OVONO BENG 3


max ← T[i];
FinSi
FinSi
FinPour
Ecrire("Le min est: ", min);
Ecrire("Le max est: ", max);
Fin

PAR OVONO BENG 4

Vous aimerez peut-être aussi