Vous êtes sur la page 1sur 4

Mme Saoussen Maâloul

Chapitre VI : Les traitements avancés

I- Introduction :
Activité : Soit à trier puis afficher un tableau Tab de N entiers avec 3≤N ≤15 dans l’ordre croissant.
Les actions à réaliser sont :
- Saisie : Saisir N entiers et les ranger dans le tableau Tab.
- Classement : Classer les N entiers du tableau Tab dans l’ordre croissant.
- Affichage : Afficher le tableau trié.
Un algorithme de tri est un algorithme qui permet d’organiser une collection d’objets selon un ordre déterminé.
Les objets à trier font partie d’un ensemble muni d’une relation d’ordre (exemple : entiers, réels. Caractères…)

II-Les méthodes de tri:


1- Tri par sélection:
Il consiste à :
- Se pointer sur la première case du tableau et parcourir le reste du tableau pour repérer l’indice du minimum
(dans le cas de tri en ordre croissant sinon l’indice du maximum dans le cas de tri décroissant).
- Comparer ce minimum (ou maximum) avec le contenu de la première case. S’ils ne sont pas dans le bon ordre,
les permuter.
- Le sous-tableau allant de 2 à n est à priori non trié, on applique les 2 étapes ci-dessus jusqu’à la case (n-1).
Remarque:
- On fait au maximum (n-1) permutations.
- On fait (n-1) + (n-2)+ (n-3)+…..+2+1= n(n-1)/2 comparaisons.
Analyse :
Nom : Tri_tableau TDNT TDO Globaux

3 Résultat= Proc Afficher (Tab,N) Type Objet Type/Nature


2 T= Proc Tri_Selection (Tab,N) T= Tableau de 6 entiers Tab T
1 T,N= Proc Saisie (Tab,N) N Entier
4 Fin Tri_tableau Saisie,Tri_Selection,Afficher Procédures

DEF PROC Saisie (Var a :Entier ; Var V :T)


2 Résultat= Pour i de 1 à a Faire
V[i]= Donnée(« Taper un entier ») TDO locaux :
FinPour
Objet Type/Nature Rôle
1 Répéter
a= Donnée (« Taper le nombre d’éléments ») I Entier Compteur
Jusqu’à a dans [3..15]
3 Fin Saisie

DEF PROC Tri_Selection (VAR Tab :T ; N :Entier)


1 Résultat= Pour i de 1 n-1 Faire TDO locaux
Ppm Fn Pospremmin(Tab,i, N) Objet Type/Nature
Si Tab[Ppm] ≠ Tab[i] Alors i Entier
aux Tab[ppm] Pospremmin Fonction
Tab[ppm] Tab[i] aux Entier
Tab[i] aux
FinSi
FinPour
2 Fin Tri_Selection

DEF PROC Afficher (V :T, N :Entier) Tableau de déclaration des objets locaux :
1 Résultat= Pour j de 1 à N Faire Écrire(V[j]) Objet Type/Nature Rôle
FinPour j Entier Compteur
2 Fin Afficher

Année Scolaire : 2008-2009 -1- LPS- 4 Tech 2-


Mme Saoussen Maâloul

DEF FN PosPremMin (V :T ; a,b :Entier) : Entier


1 Résultat= Pospremmin Posmin TDO locaux
[Posmin a] Pour j de a+1 à b Faire Objet Type/Nature
Si V[j] ‹ V[posmin] Alors J, Posmin Entier
Posmin j
FinSi
FinPour
2 Fin PosPremMin

Algorithme du programme principal : Algorithme du sous-programme Saisie:


0) Début Tri_Tableau 0) DEF PROC Saisie (Var a : Entier ; Var V :T)
1) Proc Saisie (Tab,N) 1) Répéter
2) Proc Tri_Selection (Tab,N) Écrire(« Taper le nombre d’éléments »)
3) Proc Afficher (Tab,N) Lire(a)
4) Fin Tri_tableau Jusqu’à a dans [3..15]
2) Pour i de 1 à a Faire
Algorithme du sous-programme PosPremMin: Écrire(« Taper un entier »)
0) DEF FN PosPremMin (V:T ; a,b:Entier) :Entier Lire (V[i])
1) [Posmin a] Pour j de a+1 à b Faire FinPour
Si V[j] ‹ V[posmin] Alors 3) Fin Saisie.
Posmin j Algorithme du sous-programme Tri_Sélection:
FinSi
FinPour 0) DEF PROC Tri_Sélection (Var a: Entier ; Var V:T)
2) Pospremmin Posmin 1) Pour i de 1 n-1 Faire
3) Fin PosPremMin. Ppm Fn Pospremmin(Tab,i, N)
Algorithme du sous-programme Afficher: Si Tab[Ppm] ≠ Tab[i] Alors
aux Tab[ppm]
0) DEF PROC Afficher (V :T, N :Entier) Tab[ppm] Tab[i]
1) Pour j de 1 à N Faire Tab[i] aux
Écrire(V[j]) FinSi
FinPour FinPour
2) Fin Afficher 3) Fin Tri_Sélection.

2- Tri à bulles:
Il consiste à : - Parcourir le tableau
- Au cours du parcours, comparer Tab[i] avec Tab[i+1], s’ils ne sont pas dans le bon ordre, les permuter.
- Recommencer Jusqu’à faire un parcours sans permutation ou un tableau non permuté de un seul élément.
Remarque: On fait au maximum (n-1) + (n-2)+ (n-3)+…..+2+1= n(n-1)/2 comparaisons et autant de permutations.
Analyse :
DEF PROC Tri_à_bulles(VAR Tab :T ; N :Entier)
1 Résultat= Répéter TDO locaux
[Échange Faux]
Pour i de 1 à n-1 Faire Objet Type/Nature
Si Tab[i]> Tab[i+1] Alors Échange booléen
aux Tab[i] i Entier
Tab[i] Tab[i+1] aux Entier
Tab[i+1] aux
Échange Vrai
2 FinSi
FinPour
n n-1
Jusqu’à [n=1] ou non Échange
Fin Tri_à_bulles
FinSi
Algorithme du sous-programme Tri_à_bulles: FinPour
0) DEF PROC Tri_à_bulles (Var a : Entier ; Var V :T) N n-1
1) Répéter Jusqu’à [n=1] ou non Échange
Échange Faux 3) Fin Tri_à_bulles.
Pour i de 1 n-1 Faire Algorithme du programme principal :
Si Tab[i]> Tab[i+1] Alors 0) Début Tri_Tableau
aux Tab[i] 1) Proc Saisie (Tab,N)
Tab[i] Tab[i+1] 2) Proc Tri_à_bulles (Tab,N)
Tab[i+1] aux 3) Proc Afficher (Tab,N)
Échange Vrai 4) Fin Tri_tableau

Année Scolaire : 2008-2009 -2- LPS- 4 Tech 2-


Mme Saoussen Maâloul

3- Tri par insertion:


Il consiste à :
- Chercher la position du ième élément dans la partie de 1 à i tout en considérant que cette partie est triée
et cherchant à la garder triée. Si je dois changer l’emplacement de cet i ème élément à un emplacement j,
alors décaler à droite tous les éléments de j à i-1.
- Insérer ensuite l’ ième élément dans la case j.
- Cette méthode de tri nécessite l’utilisation d’une variable intermédiaire pour conserver la valeur à
insérer.
Remarque: On fait au maximum (n-1) + (n-2)+ (n-3)+…..+2+1= n(n-1)/2 comparaisons et autant de décalages.
Analyse :
DEF PROC Tri_par_insertion (VAR Tab :T ; N :Entier)
1 Résultat= Pour i de 2 à n Faire TDO locaux
temp Tab[i] i Objet Type/Nature
j i temp I Entier
Temp Entier
Proc Décaler(Tab, j, temp) j
j Entier
Tab[j] temp Décaler Décaler Procédure
FinPour
2 Fin Tri_par_insertion

DEF PROC Décaler (VAR V :T ; Var x :Entier ; y :Entier)


1 Résultat= Tant que V[x-1]> y Faire
V[x] V[x-1]
x x-1
Fin Tant Que
2 Fin Décaler

Algorithme du module Tri_par_insertion:


0) DEF PROC Tri_par_insertion (Var V :T, a : Entier )
1) Pour i de 2 à n Faire
temp V[i]
j i
Proc Décaler(V, j, temp)
Tab[j] temp
FinPour
2) Fin Tri_par_insertion.

Algorithme du sous-programme Décaler:


0) DEF PROC Décaler (VAR V:T ; Var x :Entier ;
y:Entier)
1) Tant que V[x-1]> y Faire
V[x] V[x-1]
x x-1
Fin Tant Que
4) Fin Décaler.

Algorithme du programme principal :


0) Début Tri_Tableau
1) Proc Saisie (Tab,N)
2) Proc Tri_par_insertion (Tab,N)
3) Proc Afficher (Tab,N)
4) Fin Tri_tableau

-2-
III-Méthodes de recherche:
1- La recherche séquentielle:
La recherche séquentielle est un algorithme qui permet de vérifier l’existence d’un élément dans une série
d’éléments. Cette méthode consiste à examiner les éléments de la liste un par un, jusqu’à trouver la valeur
recherchée ou atteindre la fin de la liste.
DEF FN Recherche_Séquentielle (V :T, N, C :Entier) : Booléen
2 Résultat= Recherche_Séquentielle Trouve Trouve Tableau de déclaration des objets locaux :
1 [Trouve Faux, i 1] i
Répéter Objet Type/Nature Rôle
Si V[i] <> c Alors I Entier Compteur
i i+1
Sinon trouve Vrai Trouve Booléen
FinSi
Jusqu’à (Trouve) OU (i ≥ n)
3 Fin Recherche_Séquentielle

Algorithme du module Recherche_Séquentielle:


0) DEF FN Recherche_Séquentielle ( V :T, n, c : Entier ) : Booléen
1) [Trouve Faux, i 1]
Répéter
Si V[i] <> c Alors
i i+1
Sinon trouve Vrai
FinSi
Jusqu’à (Trouve) OU (i ≥ n)
2) Recherche_Séquentielle Trouve
3) Fin Recherche_Séquentielle.

2- La recherche dichotomique:
La recherche dichotomique est un algorithme itératif où l’espace de recherche est limité à l’une de deux parties
du tableau. Il faut noter que cette méthode n’est appliquée que sur un tableau trié.
DEF FN Recherche_Dichotomique (V :T, n, C :Entier) : Booléen
Résultat= trait Tableau de déclaration des objets locaux :
2 Trait= Si V[i]= c Alors
Recherche_Dichotomique Vrai Objet Type/Nature Rôle
Sinon Recherche_Dichotomique Faux i Entier Compteur
FinSi
1 [a 1, b n] a a,b Entier
Répéter b
i (a +b) Div 2 i
Si V[i] > c Alors b i-1
Sinon a i+1
FinSi
Jusqu’à (V[i]=c) OU (a > b)
3 Fin Recherche_ Dichotomique

Algorithme du module Recherche_ Dichotomique:


0) DEF FN Recherche_ Dichotomique ( V :T, n, c : Entier ) : Booléen
1) [a 1, b n]
Répéter
i (a +b) Div 2
Si V[i] > c Alors b i-1
Sinon a i+1
FinSi
Jusqu’à (V[i]=c) OU (a > b)
2) Si V[i]= c Alors
Recherche_Dichotomique Vrai
Sinon Recherche_Dichotomique Faux
FinSi
3) Fin Recherche_ Dichotomique

Année Scolaire : 2008-2009 -4- LPS- 4 Tech 2-

Vous aimerez peut-être aussi