0% ont trouvé ce document utile (0 vote)
10 vues71 pages

Structuration des données avec tableaux

Les tableaux algorithmic

Transféré par

artathome6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues71 pages

Structuration des données avec tableaux

Les tableaux algorithmic

Transféré par

artathome6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SAVOIR STRUCTURER

LES DONNEES
- Les tableaux
1 - Tableau Vecteur
Introduction
Imaginons que dans un programme, nous avons besoin simultanément de 12 valeurs (par
exemple, des notes pour calculer une moyenne). Evidemment, la seule solution dont nous
disposons à l’heure actuelle consiste à déclarer 12 variables, appelées par exemple N1, N2,
N3,… N12. Cela donnera l’algorithme suivant :
Algorithme calcul_moyenne_des_notes
Variable N1, N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12 : entier
Moyenne : réel
Début Si on a maintenant plus que
Ecrire ("Donner les notes : ")
Lire(N1) 20 étudiants, le programme
Lire(N2)
Lire(N3) devient difficile à gérer.
Lire(N4)
Lire(N5)
Lire(N6)
Lire(N7)
Lire(N8)
Lire(N9)
Lire(N10)
Lire(N11)
Lire(N12)
Moyenne  (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12) / 12
D’ou l’intérêt de la
Ecrire("La moyenne est : ", Moyenne)
Fin
notion des tableaux.
Structure Tableau Vecteur
Définition: Les tableaux
◼ Regroupement de plusieurs éléments de même type sous un
même nom.
◼ Un tableau peut être un ensemble de valeurs entières, réelles,
booléennes, caractères …
◼ Un tableau unidimensionnel est appelé vecteur
◼ Une variable entière nommé indice permet d'indiquer la position
d'un élément donné au sein du tableau et de déterminer sa valeur.

Les indices 0 1 2 3 4 5

T 10 4 6 40 22 6
Les tableaux
Déclaration
La déclaration d'un tableau s'effectue en précisant le type
de ses éléments et sa dimension (le nombre de ses
éléments)
Tableau nom_du_tableau(longueur) : Type

◼ Exemples :
➢ Tableau mot(10) : Caractere
➢ Tableau notes(25) : Entier
5
Les tableaux
Tableau t(8) : Entier

Indices: 0 1 2 3 4 5 6 7
t

◼ le ième élément de ce tableau sera adressé par t[i].


Exemple: t(3)  13 la 4ème case du tableau
t(6)  -4 la 7ème case du tableau
0 1 2 3 4 5 6 7
t 13 -4
6
Les tableaux
◼ Ecrire(t(4)) : le contenu du tableau à l’indice 4 est
affiché à l’ écran
◼ Lire(t(2)) : la valeur entrée par l’utilisateur est
enregistrée dans le tableau à l’indice 2

Attention :
➢ t7 INTERDIT
➢ Ecrire(t) INTERDIT
➢ Lire(t) INTERDIT

7
Exercice 1
Considérons les programmes suivants:
Tableau X (4) : Entier
DEBUT
X (1) ← 12
X (2) ← 5
X (3) ← 8
X (4) ← 20
FIN

Tableau voyelle (6) : Chaîne


DEBUT
voyelle (1) ← « a »
voyelle (2) ← « e »
voyelle (3) ← « i »
voyelle (4) ← « o »
voyelle (5) ← « u »
voyelle (6) ← « y »
FIN
Donner les représentations graphiques des tableaux X (4) et voyelle (6) après exécution de ces
programmes.
Exercice 2
Quel résultat fournira l’exécution de ce programme :

Variable i : Entier
Tableau C (6) : Entier
DEBUT
POUR i = 1 A 6
Lire C (i)
FIN POUR
POUR i = 1 A 6
C (i) ← C (i) * C (i)
FIN POUR
POUR i = 1 A 6
Ecrire C (i)
FIN POUR
FIN
Si on saisit successivement les valeurs : 2 , 5 , 3 , 10 , 4 , 2.
Exercice 3: Suite de Fibonacci
Que fournira l’exécution de ce programme :

Tableau suite (8) : Entier


Variable i : Entier
DEBUT
Suite (1) ← 1
Suite (2) ← 1
POUR i = 3 A 8
suite (i) ← suite (i - 1) + suite (i - 2)
FIN POUR
POUR i = 1 A 8
Ecrire suite (i)
FIN POUR
FIN
Exercice 4

Écrire un algorithme qui permet de


saisir les éléments d’un tableau
d’entiers de taille 10

11
Exercice 5

Soit T un tableau de vingt éléments de


types entiers.
Écrire le programme qui permet de
calculer la somme et la moyenne des
éléments de ce tableau.
Exercice 6

Soit T un tableau de 10 entiers.


Écrire l’algorithme qui détermine le
plus grand élément de ce tableau.
Exercice 7

Écrire un programme qui permet de


lire 100 notes et de déterminer le
nombre de celles qui sont supérieures
à la moyenne de ces notes.
Exercice 8

Soit T un tableau de 20 entiers.


Ecrire l’algorithme qui détermine
simultanément le plus grand élément
du tableau et sa position et le plus
petit élément et sa position
Exercice 9

Soit T un tableau de 100 réels.


Écrire le programme qui permet de
calculer le nombre des occurrences d’un
nombre X (c'est-à-dire combien de fois ce
nombre X figure dans le tableau T).
Exercice 10
On dispose des notes de 25 élèves ; chaque élève peut avoir une ou plusieurs
notes mais toujours au moins une.
Écrire un programme permettant d’obtenir la moyenne de chaque élève
lorsqu’on lui fournit les notes. On veut que les données et les résultats se
présentent ainsi :

– Les parties italiques correspondent aux données tapées par l’utilisateur.


– La valeur -1 sert de critère de fin de notes pour chaque élève.
Les tableaux dynamiques
◼ Il arrive fréquemment que l’on ne connaisse pas à l’avance le nombre
d’éléments que devra comporter un tableau.
◼ Bien sûr, une solution consisterait à déclarer un tableau avec une taille
très grande
✓ Cela pourra avoir comme conséquence soit que cette taille ne
nous nous suffira pas ou qu’une place mémoire immense sera
réservée sans être utilisée.
◼ Afin de surmonter ce problème on a la possibilité de déclarer le tableau
sans préciser au départ son nombre d’éléments. Ce n’est que dans un
second temps, au cours du programme, que l’on va fixer ce nombre via
une instruction de re-dimensionnement : Redim

18
Les tableaux dynamiques
Exemple :
◼ On veut saisir des notes pour un calcul de moyenne, mais on ne sait
pas combien il y aura de notes à saisir.
◼ Le début de l’algorithme sera quelque chose du genre :

Tableau Notes () : Réel


Variable nb en Entier
DEBUT
Ecrire “Combien y a-t-il de notes à saisir ?“
Lire nb
Redim Notes(nb)

FIN 19
Exercice 11: recherche d un élément dans un
tableau

Écrire l’algorithme qui permet de chercher un


nombre dans un tableau de N entiers, cet algo
doit afficher :
• Nombre Existe et sa position
• Nombre inexistant
Exercice12: Insertion d’un élément dans un
tableau

Soit T un tableau de N éléments.


Ecrire un programme qui permet d’insérer un élément x
à la position i du tableau T
➢ demander la taille du tableau,
➢ remplir le tableau,
➢ lire la valeur à insérer x,
➢ lire la position ou on veut insérer,
➢ parcourir le tableau et insérer x dans sa position,
➢ afficher le tableau.
Exercice13 : insérer un élément dans un tableau
trié
Soit un tableau N de 10 entiers triés
Écrire le programme qui permet de lire un nombre entier et de
l’insérer dans sa position
Cet algo doit afficher « nombre existant » dans le cas où ce
nom existe déjà dans le tableau

Exemple
4 32 56 82
1ere nombre à insérer : 45
4 32 45 56 82
2eme nombre à insérer : 82
Exercice 14 : Supprimer un élément dans un
tableau

Soit un tableau de 10 entiers triés


Écrire le programme qui permet de lire un nombre entier et de
le supprimer
Cet algo doit afficher « nombre inexistant » dans le cas où cet
entier n’existait pas dans le tableau
Exemple
4 32 56 82
1ere nombre à supprimer : 56
4 32 82
2eme nom à supprimer : 5
Exercice 15
Ecrire l’algorithme qui supprime toutes les
occurrences du tableau préalablement saisi de
10 caractères alphanumériques

Exemple

T 1 1 2 3 2 1 4 3 5

Le tableau devient

T 1 2 3 4 5
Exercice 16 : inverser l ordre de tableau
Ecrire un programme qui inverse un tableau.
Demander la taille du tableau, remplir le tableau,
afficher le tableau, inverser le tableau puis afficher le
nouveau tableau.
T 1 5 6 7 3
1 2 3 4 5
indice

Le tableau devient :
T 3 7 6 5 1
indice 1 2 3 4 5
Exercice 17
Soit T un tableau de N éléments
Écrire l’algorithme qui permute les éléments
successifs du tableau deux à deux
Exemple : Après permutation :

123456789

214365879

Refaites l exercice avec la boucle tant que


Exercice 18
Soit T1 et T2 deux tableaux de N éléments
Écrire l’algorithme qui calcul dans un tableau T3 la
somme des éléments de T1 et T2 ayant les indices
opposés.

Exemple :

T1 153291753

T2 123456789

T3 10 13 10 8 14 5 10 7 4
Exercice 19
Ecrire le programme qui permet de lire et de fusionner
deux tableaux précédemment saisis T1 de 5 éléments
et T2 de 6 éléments l’un à la suite de l’autre dans le
tableau T3

T1 2 7 1 8 6
T2 13 3 6 5 4 9

T3 2 7 1 8 6 13 3 6 5 4 9

T1 et T2 n’ont pas nécessairement la même taille


Exercice 20
A partir de deux tableaux précédemment saisis T1 et T2 ayant
respectivement 6 et 4 éléments
écrivez un algorithme qui calcule le schtroumpf des deux
tableaux.
Pour calculer le schtroumpf, il faut multiplier chaque élément
du tableau 1 par chaque élément du tableau 2, et additionner
le tout.
Par exemple :
T1 1 5 3 2 4 8
T2 1 5 2 7
S= (1*1)+(1*5)+(1*2)+(1*7) + (5*1)+(5*5)+(5*2)+(5*7) +
(3*1)+(3*5)+(3*2)+(3*7) + (2*1)+(2*5)+(2*2)+(2*7) +
(4*1)+(4*5)+(4*2)+(4*7) + (8*1)+(8*5)+(8*2)+(8*7)
Exercice 21
Écrire l’algo qui permet de lire et de fusionner
deux tableaux précédemment saisis T1 et T2
qui sont triés

T1 1 3 5 7 9 11 13
T2 2 3 6 8

T 1 2 3 3 5 6 7 8 9 11
13 17
Exercice 22

Écrire l’algo qui permet de diviser les éléments


d’un tableau de 10 par le k ieme élément de ce
tableau

• Le tableau est déjà saisi


• Indice k sera saisi par l utilisateur
Exercice 23
Soit A et B deux tableaux de même longueur 10 éléments
préalablement saisis, on suppose que A et B ne contiennent
pas des doublant

T1 1 5 24 2 9 6 7 15 3 11

T2 1 2 3 14 5 6 17 28 9

Écrire l’algorithme qui trouve les éléments en commun entre


les deux tableaux et les mettre dans le tableau C
C=A B
C 1 5 2 9 6
Exercice 24
Ecrire l’algorithme qui saisit un tableau de caractère
(un mot) , puis vérifie que le mot est palindrome :
phrase inversée

Exemple E L L E
• Demander la longueur du mot
• Saisir le mot caractère par caractère
Exercice 25
Ecrire l’algorithme qui range un tableau
précédemment saisi de 10 entiers de la façon
suivante:
• Les nombres paires à gauche du tableau
• Les nombres impaires à droite du tableau

T 1 2 3 4 5 6 7 8 9 10
Après l exécution du programme
T 2 4 6 8 10 1 3 5 7 8 9
i 1 2 3 4 5 6 7 8 9 10
1 2 1 3 4 5 6 7 8 9 10
2 2 1 3 4 5 6 7 8 9 10
3 2 1 4 3 5 6 7 8 9 10
4 2 1 4 3 5 6 7 8 9 10
5 2 1 4 3 6 5 7 8 9 10
6 2 1 4 3 6 5 7 8 9 10
7 2 1 4 3 6 5 8 7 9 10
8 2 1 4 3 6 5 8 7 9 10
9 2 1 4 3 6 5 8 7 10 9
J ARRETE la boucle ok= vrai
1 2 1 4 3 6 5 8 7 10 9
2 2 4 1 3 6 5 8 7 10 9
3 2 4 1 3 6 5 8 7 10 9
4 2 4 1 6 3 5 8 7 10 9
5 2 4 1 6 3 5 8 7 10 9
Corrigé de l ex 25
Tableau T(10) : entier
Var i, j, tem : entier
Début

Répéter
ok vrai
i 1
Tant que ((i<=10)
Si (T(i) mod2 <> 0) et T(i+1) mod2 =0) alors
temp T(i)
T(i+1) T(i)
T(i+1) temp
ok faux
FSI
i i+
Fin tant que
Jusqu'à (ok = vrai)
Pour i = 1 à 10
Ecrire T(i)
Fin pour
FIN
2- Tableau à deux dimensions
(les matrices)
Les tableaux à deux dimensions
❑ Nous avons vu qu’un tableau à une dimension correspond à une liste
ordonnée de valeurs, repérée chacune par un indice.
❑ Dans tous les langages de programmation, il est possible de définir
des tableaux à deux dimensions (tableaux multidimensionnels)
❑ Les tableaux multidimensionnels sont des tableaux ayant plusieurs
indices. Il sont utilisés pour représenter des structures de données
telle que les matrices…

❑ Ainsi, on pourra placer des valeurs dans un tableau à deux


dimensions et cela consiste comme dans le cas des tableaux à une
dimension à donner un nom à l’ensemble de ces valeurs. Chaque
valeur est alors repérée par deux indices qui précisent la position.
Déclaration
On déclare un tableau à deux dimensions de la façon
suivante :

Tableau nom_tableau (i , j ) : Type

nom_tableau : désigne le nom du tableau


i : désigne le nombre de lignes du tableau
j : désigne le nombre de colonnes du tableau Type
: représente le type des éléments du tableau

39
Déclaration
Exemple: une matrice mots de 3 lignes et 7 colonnes
Tableau mots (3,7) : Caractére

0 1 2 3 4 5 6

0
mots
1
2

40
Les tableaux à deux dimensions
◼ L’élément de la ième ligne et la jème colonne est
représenté par mots(i,j)
Exemple:

mots(1,4)  ‘r’
0 1 2 3 4 5 6
0
mots
r
1

2 41
Exercice 1
Considérons le programme suivant : b. que produira ce programme si l’on
Tableau X (2 , 3) : Entier remplace les derniers lignes par :
Variables i , j , val : Entiers POUR j = 1 A 3
DEBUT POUR i = 1 A 2
val ← 1 Ecrire X (i , j)
POUR i = 1 A 2 FIN POUR
FIN POUR
POUR j = 1 A 3
X (i , j) ← val
val ← val + 1
FIN POUR
FIN POUR
POUR i = 1 A 2
POUR j = 1 A 3
Ecrire X (i , j)
FIN POUR
FIN POUR
a. Que produit l’exécution de ce programme.
Exercice 2

Ecrire l’algorithme permettant de lire


une matrice mat(3,5)
Exercice 3

Soit T un tableau de N lignes N colonnes


Ecrire l’algorithme qui initialise les
éléments de la première et la deuxième
diagonale à 10. 10 10
10 10
Afficher le résultat 10
10 10
10 10
Exercice 4
Soit T un tableau à deux dimensions de vingt lignes et
cinquante colonnes.

a. Ecrire un algorithme qui permet de calculer la somme


de tous les éléments du tableau.

b. Ecrire l’algorithme qui permet de compter le nombre des


éléments strictement positifs.

c. Ecrire l’algorithme permettant d’obtenir la somme des


éléments positifs (spos) et la somme des éléments négatifs
(sneg) de ce tableau.
Exercice 4 (suite)

d. Ecrire l’algorithme qui détermine la plus


petite valeur des éléments du tableau.

e. Ecrire l’algorithme qui détermine


simultanément l’élément le plus grand du
tableau ainsi que sa position.)
Exercice 5

Soit R[N,M] un tableau de N lignes et M


colonnes
Soit T[N+M] un tableau de N+M éléments
Ecrire l'algorithme qui met tous les
éléments de R dans T
Exercice 5
Ecrire un programme qui réalise l'addition de deux matrices
A et B de mêmes dimensions N et M.
Rappel: Redim(A[N,M], B[N,M])

a) Le résultat de l'addition sera mémorisé dans une troisième matrice


C qui sera ensuite affichée.
Exercice 6

Ecrire l’algo permettant d’inverser la matrice


carrée

Avant inversion Après inversion


123 147
456 258
789 369
Exercice 7
Ecrire l’algo permettant de déterminer le produit de deux
matrices
Le nombre de colonnes de la première matrice doit être
égal au nombre de lignes de la 2eme matrice
3- Les méthodes de
Tris et de recherche
TRI
Définition
Un tri consiste à arranger des données selon un ou des
critères bien déterminés.
Par exemple trier des données selon un ordre alphabétique
croissant ou décroissant.
Le tri est une des opérations des plus importantes des
traitements sur ordinateur.
Différentes méthodes peuvent être envisagées suivant la
nature du problème à traiter.
Les algorithmes de Tri
◼ Tris élémentaires
➢ Le tri par sélection
➢ Le tri par insertion
➢ Le tri à bulles

◼ Tris avancés
➢ Tri rapide
➢…
TRI SIMPLE
tableau T(10): Entier
Var i,J : Entier
Pour i=1 a n-1
Pour j=i+1 a n
Si t(i)>t(j) alors
Echanger t(i)et t(j)
Fin si
Fin pour
Fin pour
Tri par sélection
Méthode
On cherche l’élément de plus petite valeur pour l’échanger avec l’élément en
première position; puis on cherche l’élément ayant la deuxième plus petite
valeur pour l’échanger avec l’élément en deuxième position ; et ainsi de suite.

Il faut :
1 boucle pour parcourir le tableau et sélectionner tous les éléments ;
1 boucle pour rechercher le minimum parmi les éléments non triés.
Tri par sélection
◼ Supposons que le tableau est noté T et sa taille N
Pour i de 0 A N-2 Faire
min i
Pour j de i+1 A N-1 Faire
Si (T[j] < T[min]) Alors
min j Recherche de l’élément
Finsi concerné(le plus petit)
FinPour
temp  min]
min]  T[i] Permutation des deux valeurs
T[i]  min
FinPour
Tri par insertion
Cette méthode consiste à prendre les éléments de la liste un par un et insérer
chacun dans sa bonne place de façon que les éléments traités forment une
sous-liste triée.
Tri par insertion : Algorithme
# décaler les éléments T[1]..T[i-1] qui sont plus grands que x, en partant de T[i-
1]

pour i de 2 à n

# mémoriser T[i] dans x


malplacé← T[i]

j←i
tant que j > 1 et T[j - 1] > x
T[j] ← T[j - 1]
j←j-1
Fintantque
# placer malplacé dans le "trou" laissé par le décalage
T[j] ← malplacé
Finpour
Tri par permutation (par insertion)
Le tri par permutation est le tri du jeu de cartes
• On parcourt le tableau jusqu'à ce que l'on trouve un élément plus
petit que le précédent, donc mal placé.
• On prend cet élément et on le range à sa place dans le tableau(on
compare cet élément avec le précèdent puis on continue la
lecture.
On s'arrête à la fin du tableau.
Indice 1 2 3 4 5 6 7 8 9 10
Tour 1 52 10 1 25 62 3 8 55 3 23
Tour 2 10 52 1 25 62 3 8 55 3 23
Tour 3 1 10 52 25 62 3 8 55 3 23
Tour 4 1 10 25 52 62 3 8 55 3 23
Tour 5 1 3 10 25 52 62 8 55 3 23
Tour 6 1 3 8 10 25 52 62 55 3 23
Tour 7 1 3 8 10 25 52 55 62 3 23
Tour 8 1 3 3 8 10 25 52 55 62 23
Tour 9 1 3 3 8 10 23 25 52 55 62
Tri à bulles
Le tri bulle est un tri plus astucieux.
son principe est de faire remonter petit à petit un élément trop grand
vers le haut du tableau en comparant les éléments deux à deux.
Si l'élément de gauche est supérieur à son voisin de droite on les
inverse et on continue avec le suivant.
Lorsque l'on est en haut du tableau on repart au début et on s'arrête
lorsque tous les éléments sont bien placés.
On a parcours tous le tableau, on recommence, jusqu'à ce que tout
soit bien placé.

Il faut
❑ Une boucle pour parcourir le
tableau et sélectionner les éléments
un à un
❑ Une boucle pour permuter les
éléments adjacents
Tri par comptage
Le tri par comptage consiste pour chaque élément du tableau à
compter combien d‘éléments sont plus petits que lui,
grâce à ce chiffre on connait sa position dans le tableau résultat.

Indice 1 2 3 4 5 6 7 8 9 10
T 52 10 1 25 62 3 8 55 3 23

NB 7 4 0 6 9 1 3 8 1 5

poids 8 5 1 7 10 2 4 9 3 6
Ttrié 1 3 3 8 10 23 25 52 55 62

Pour réaliser ce tri, utilisez plusieurs tableaux


61
Solution
//Remplissage du tableau position par les
positions //Tri des éléments dans le tableau temporaire X
Pour i de 1 a N Pour i de 0 a N-1 Faire
Poids[i]  0 X[ Poids[i] ]  T[i]
Pour j de 1 a N Finpour
Si (T[j] < = T[i]) alors //Copie des éléments triés dans T
Poids[i]  Poids[i] + 1 Pour i de 0 a N-1 Faire
Fin si T[i] X[i]
Fin pour Finpour
Finpour
//Elimination des positions doubles du tableau
Poids
Pour i de 1 a NFaire
Pour j de 1a NFaire
Si ((Poids[i] = Poids[j]) et (i <> j)) alors
Poids[j]  Poids[j] + 1
Finsi
Finpour
Finpour
correction Comptage
Ttableau T (10): Entier
Var i,pos : Entier
Pour i = 1 a 10
Ttrié (i)  0
Ttrié 0 0 0 0 0 0 0 0 0 0
Nb(i)  0
// calcule des compteurs
Pour j = 1a 10
Si T(j) < T(i) alors
Nb(i)  Nb(i) + 1
Finsi
Finpour
Finpour
//Positionnement
Pour i = 1 a 10
pos Nb(i)+1
Tant que Ttrié(pos) <> 0 // cas des doubles
pos  pos + 1
Fin de tant que
Ttrié (pos)  t(i)
Finpour
4- Les méthodes de
Recherche Rapide
Recherche séquentielle
Le principe de l'algorithme de recherche séquentielle
consiste à parcourir un tableau d'éléments dans
l'ordre de ses indices jusqu'à ce qu'un élément
recherché soit trouvé ou bien que la fin du tableau
soit atteinte et le rang (indice) de l'élément est alors
retourné.

65
Algorithme de recherche séquentielle

cas1: premier élément trouvé


Variable i, : entier
Début
Pour (i de 1 à N) Faire
Si (T[i] = ValRech) Alors
Ecrire « élément bien trouvé »
FinSi
FinPour

Fin 66
Algorithme de recherche séquentielle

cas2: dernier élément trouvé


entier Fonction RechSéq(T: Tableau d'entiers, N: entier,ValRech: entier)
Variable i , p: entier
Début
p <- -1
Pour (i de 0 à N-1) Faire
Si (T[i] = ValRech) Alors
p <- i
FinSi
FinPour
Retourner p
67
Fin
Recherche dichotomique
L'algorithme de recherche dichotomique est un algorithme
efficace et rapide pour la recherche d'un élément dans un
tableau trié.

Le principe de cet algorithme consiste à diviser le tableau en


deux parties et à comparer la valeur recherchée avec
l'élément situé au milieu du tableau (l'élément médian).
➢ Si la valeur recherchée correspond à l'élément médian,
alors l'algorithme s'arrête et renvoie l'indice de cet
élément.
➢ Sinon l'algorithme va répéter la recherche uniquement
dans la partie qui peut contenir la valeur recherchée. 68
Soit T un tableau de N éléments ordonnés et ValRech un
élément de même type que les éléments de T.
Il s'agit d'examiner la présence de ValRech dans T.
Comme le tableau est ordonné, il satisfait la spécification
suivante :
Au lieu de faire une recherche linéaire, on décompose le
tableau en deux sous-tableaux T1 et T2 et trois cas peuvent se
produire :
❑ ValRech est trouvé la recherche est terminé.
❑ la recherche continue dans T1.
❑ la recherche continue dans T2.
Exemple
Soit le tableau suivant T :

Vous constatez que le tableau T est déjà ordonné. On va voir


comment s'applique la méthode de recherche binaire pour rechercher
si ValRech = 20 existe dans le tableau T.
On divise l'intervalle des indices [1,8] en deux intervalles [1,4] et [5,8].
On obtient deux tableaux T1 et T2.

ValRech [1,4] ValRech [5,8].


La recherche va continuer dans le tableau T2 puisque
ValRech (20) est plus supérieur que le plus grand élément de T1.
Donc l'intervalle de recherche devient [5,8] et on va le diviser à son
tour en deux intervalles [5,6] et [7,8].

De même, la recherche va continuer dans T2.


L'intervalle de recherche devient [7,8]. On le divise en deux
intervalles [7,7] et [8,8].
Finalement, x est trouvé.

Vous aimerez peut-être aussi