Académique Documents
Professionnel Documents
Culture Documents
Introduction
Un algorithme de tri permet de mettre dans un ordre croissant ou décroissant des valeurs
stockées dans une structure de donnée comme un tableau en mémoire centrale. Ces valeurs
pourraient être de type numérique ou caractères. Il existe plusieurs méthodes de tri tels que le
tri par sélection, le tri à bulle et le tri par insertion.
Activité
Faire l'analyse d'un programme qui permet de trier un tableau T de n éléments dans l’ordre
croissant avec n comprise entre 3 et 15.
Principe
Sa consiste à trouver l'emplacement de l'élément le plus petit du tableau et le permuter avec le
premier élément du tableau. Ce même procédé est réutilisé pour trier le reste du tableau.
Nom : tri_selection
S L.D.E O.U.
4 Résultat = PROC Affichage (T, n) T
3 T = PROC Tri (T, n) n
2 T = PROC Remplir (T, n) Affichage
1 n = PROC Saisie (n) Tri
5 Fin tri_selection Remplir
Saisie
TDNT
Types
tab = tableau de 15 entiers
TDO
Objet Type/Nature Rôle
Affichage Procédure Permet d’afficher les éléments de T
T tab Tableau d’entier
n entier Taille du tableau
Tri Procédure Permet de trier les éléments de T
Remplir Procédure Permet de remplir le tableau
Saisie Procédure Permet de saisir la taille
Algorithme
0) Début tri_selection
1) PROC Saisie (n)
2) PROC Remplir (T, n)
3) PROC Tri (T, n)
4) PROC Affichage (T, n)
5) Fin tri_selection
4 Technique 1
Lycée 15 octobre sejnene AS : 2008-2009
2- Analyse de la procédure Affichage
T.D.O
Objet Type/Nature Rôle
i entier compteur
Algorithme
0) DEF PROC Affichage (T : tab ; n : entier)
1) Pour i de 1 à n faire
Ecrire (T[i])
FinPour
2) Fin Affichage
T.D.O
Objet Type/Nature Rôle
i entier compteur
pmin entier position de l’élément minimal
recherche_pmin fonction retourne pmin
permuter procédure permuter 2 éléments
Algorithme
0) DEF PROC tri (var T : tab ; n : entier)
1) Pour i de 1 à n-1 faire
pmin ← FN recherche_pmin (T, n, i)
PROC permuter (T[i], T[pmin])
FinPour
2) Fin tri
4 Technique 2
Lycée 15 octobre sejnene AS : 2008-2009
3-a. Analyse de la fonction recherche_pmin
T.D.O
Objet Type/Nature Rôle
p entier Position minimale
j entier Compteur
Algorithme
0) DEF FN recherche_pmin (T: tab ; n: entier ; i: entier): entier
1) p ← i
Pour j de i+1 à n faire
Si T[p] > T[j] alors
p←j
FinSi
FinPour
2) recherche_pmin ← p
3) Fin recherche_pmin
T.D.O
Objet Type/Nature Rôle
temp entier Variable intermédiaire
Algorithme
0) DEF PROC permuter (var a : entier ; var b : entier)
1) temp ← a
2) a ← b
3) b ← temp
4) Fin permuter
4 Technique 3
Lycée 15 octobre sejnene AS : 2008-2009
T.D.O
Objet Type/Nature Rôle
i entier compteur
Algorithme
0) DEF PROC Remplir (var T : tab ; n : entier)
1) Pour i de 1 à n faire
Ecrire ("Donner l’entier n° : ", i)
Lire (T[i])
FinPour
2) Fin Remplir
Algorithme
0) DEF PROC Saisie (var n : entier)
1) Répéter
Ecrire ("Donner la taille du tableau entre 3 et 15")
Lire (n)
Jusqu’à (n dans [3..15])
2) Fin Saisie
4 Technique 4
Lycée 15 octobre sejnene AS : 2008-2009
II – Tri à bulles
Activité
Faire l'analyse d'un programme qui permet de trier un tableau T de n éléments dans l’ordre
croissant avec n comprise entre 3 et 15.
Principe
Cet algorithme compare les éléments du tableau deux à deux, jusqu’à obtenir un tableau trié.
Dans ce cas, la répétition de plusieurs passages sur l'ensemble des données est nécessaire pour
l'obtention d'un tri complet. Cette méthode est appelée le tri à bulles, car les éléments mal
classés remontent dans la liste comme des bulles à la surface d'un liquide.
T.D.O
Objet Type/Nature Rôle
changer booléen Etat de permutation
i entier compteur
permuter procédure permuter 2 éléments
Algorithme
0) DEF PROC Tri (var T : tab ; n : entier)
1) Répéter
changer ← faux
Pour i de 1 à n-1 faire
Si T [i] > T [i+1] alors
PROC permuter (T[i], T [i+1])
changer ← vrai
FinSi
Fin pour
Jusqu’à (changer = faux)
2) Fin Tri
4 Technique 5
Lycée 15 octobre sejnene AS : 2008-2009
Activité
Faire l'analyse d'un programme qui permet de trier un tableau T de n éléments dans l’ordre
croissant avec n comprise entre 3 et 15.
Principe
Ce tri consiste à :
1- Considérer que les (i - 1) premiers éléments du tableau sont triés et placer le ième élément
à sa place parmi les (i - 1) déjà triés.
2- Répéter cette action jusqu’à traiter le dernier élément du tableau.
T.D.O
Objet Type/Nature Rôle
i entier compteur
p entier élément à insérer
j entier compteur
Algorithme
0) DEF PROC Tri (var T : tab ; n : entier)
1) Pour i de 2 à n faire
p ← T [i]
j←i-1
Tant que (j >= 1) et (p < T[j]) faire
T [j + 1] ← T [j]
j←j–1
FinTantque
T [j + 1] ← p
FinPour
2) Fin Tri
4 Technique 6
Lycée 15 octobre sejnene AS : 2008-2009
B- Les algorithmes de recherche
Introduction
La recherche d’un élément dans un tableau de valeurs est un traitement très utilisé en
informatique. Parmi les méthodes de recherche les plus connues, on trouve la recherche
séquentielle et la recherche dichotomique.
I – La recherche séquentielle
Activité
Faire l'analyse d'un programme qui permet de rechercher et d’afficher la première position
d’un élément v donné (si l’élément n’existe pas afficher : "L’élément v n’existe pas") dans un
tableau T de n éléments avec n comprise entre 3 et 15.
Principe
Cette méthode de recherche consiste à parcourir les éléments du tableau un par un jusqu'à
trouver la valeur à chercher ou arriver à la fin du tableau.
Nom : Recherche
S L.D.E O.U.
5 Résultat = PROC Afficher (v, pos) v
4 pos ← FN recherche_sequentielle (T, n, v) pos
3 v = Donnée ("Donner l’élément à chercher") Afficher
2 T = PROC Remplir (T, n) T
1 n = PROC Saisie (n) n
recherche_sequentielle
Remplir
6 Fin Recherche Saisie
TDNT
Types
tab = tableau de 15 entiers
TDO
Objet Type/Nature Rôle
Afficher Procédure Permet d’afficher la position de l’élément à chercher
T tab Tableau d’entier
n entier Taille du tableau
v entier L’élément à chercher
recherche_sequentielle Fonction Retourne la position de l’élément à chercher
Remplir Procédure Permet de remplir le tableau
Saisie Procédure Permet de saisir la taille
pos entier Position de l’élément à chercher
Algorithme
0) Début Recherche
1) PROC Saisie (n)
2) PROC Remplir (T, n)
3) Ecrire ("Donner l’élément à chercher")
Lire (v)
4) pos ← FN recherche_sequentielle (T, n, v)
5) PROC Afficher (v, pos)
6) Fin Recherche
4 Technique 7
Lycée 15 octobre sejnene AS : 2008-2009
2- Analyse de la procédure Afficher
Algorithme
0) DEF PROC Afficher (v : entier ; pos : entier)
1) Si (pos = 0) alors
Ecrire ("l’élément ", v, " n’existe pas")
Sinon Ecrire ("l’élément ", v, " se trouve à la position ", pos)
FinSi
2) Fin Afficher
T.D.O
Objet Type/Nature Rôle
p entier Position de l’élément à chercher
i entier Compteur
Algorithme
0) DEF FN recherche_sequentielle (T: tab ; n: entier ; v: entier): entier
1) p ← 0
i←1
Tant que ((i <= n) et (p = 0))
Si (T[i] = v) alors
p←i
Sinon i ← i + 1
FinSi
FinTantque
2) recherche_sequentielle ← p
3) Fin recherche_sequentielle
Remarque : Pour les procédures Remplir et Saisie, voir partie Méthodes de tri.
4 Technique 8
Lycée 15 octobre sejnene AS : 2008-2009
II – La recherche dichotomique
Activité
Faire l'analyse d'un programme qui permet de rechercher et de vérifier l’existence d’un
élément v donné dans un tableau T de n éléments avec n comprise entre 3 et 15.
Principe
Cette méthode de recherche consiste à chercher en divisant le tableau d’éléments trié en deux
parties égales et vérifier dans quelle partie figurerait la valeur recherchée. Ce traitement est
répété jusqu’à trouver la valeur à chercher ou l’impossibilité de diviser le tableau.
T.D.O
Objet Type/Nature Rôle
trouve booléen Etat de la recherche
g entier Indice de gauche
d entier Indice de droite
m entier Indice du milieu
Algorithme
0) DEF FN recherche_dichotomique (T: tab ; n: entier ; v: entier): booléen
1) trouve ← faux
g←1
d←n
Répéter
m ← (g + d) DIV 2
Si (v = T[m]) alors trouve ← vrai
Sinon Si (v > T[m]) alors g ← m + 1
Sinon d ← m – 1
FinSi
Jusqu’à ((trouve = vrai) ou (g > d))
2) recherche_dichotomique ← trouve
3) Fin recherche_dichotomique
4 Technique 9