Algorithmes de TRI                                                              Algorithmique & ProgrammationI. Rappels   ...
Algorithmes de TRI                                                                 Algorithmique & Programmation3) Activit...
Algorithmes de TRI                                                             Algorithmique & Programmationd) Algorithme ...
Algorithmes de TRI                                                                     Algorithmique & Programmation      ...
Prochain SlideShare
Chargement dans…5
×

Algorithmes de tri

7 624 vues

Publié le

0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
7 624
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
551
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Algorithmes de tri

  1. 1. Algorithmes de TRI Algorithmique & ProgrammationI. Rappels 1) Activité 1 (Tri à bulles) a) PrincipeLe principe de cette méthode de tri consiste à balayer tout le tableau, comparer les éléments consécutifset les échanger sils ne sont pas dans le bon ordre.Cette méthode peut se traduire par l’algorithme formel suivant :Comparer la première paire des éléments,1- Si T [ 1 ] > T [ 2 ]alors permuter T [ 1 ] et T [ 2 ] et tenir compte de cette action.2- Aller à la paire suivante et répéter les étapes 1 et 2 jusqu’à comparer la dernière paire.3- Si une permutation a été réalisée (ou plusieurs) alors répéter ce qu’on vient de faire, sinon le tableauest trié. b) Algorithme 0) DEF PROC Tri_bulles( var T :tab ; N : entier) 1) Répéter echange  Faux Pour i de 1 à N - 1 Faire Si T [ i ] > T [ i + 1 ] Alors aux  T [ i ] T[i]T[i+1] PROC Permut (T [ i ], T [ i+1] ) T [ i + 1 ]  Aux echange  vrai Fin Si Fin Pour Jusqu’à (echange = Faux) 2) Fin Tri_bulles2) Activité 2 (Tri par séléction) a) Principe Cette méthode peut se traduire par l’algorithme formel suivant :1- Comparer tous les nombres afin de sélectionner le plus petit (ordre croissant),2- Échanger le plus petit élément trouvé avec le premier élément,3- Refaire les étapes 1 et 2 et rechercher le plus petit du tableau sauf le premier puis l’échanger avec le second. b) Algorithme 0) DEF PROC Tri_sélection( var T :tab ; N : entier) 1) Pour i de 1 à N - 1 Faire posmin  i Pour j de i+1 à N Faire Recherche de la position du Si T [ j ] < T [ posmin ] Alors posmin  j minimum « posmin » Fin Si Fin Pour Si i < > posmin Alors aux  T [ i ] T [ i ]  T [posmin ] T [posmin ]  aux Fin Si Fin Pour 2) Fin Tri_selection Enseignant: Mr SAYARI Page 1 /4 4 S.INFO
  2. 2. Algorithmes de TRI Algorithmique & Programmation3) Activité 3 (Tri par insertion) a) Principe C’est une méthode de tri qui consiste à prendre les éléments du tableau un par un puis d’insérer chacun à sa bonne palace façon que les éléments traités forment une liste triée. Cette méthode peut se traduire par l’algorithme formel suivant : 1- On commence par le deuxième élément, 2- Comparer l’élément choisis avec tous ses précédents dans le tableau et l’insérer dans sa bonne place, 3- Répéter l’étape 2 pour l’élément suivant jusqu’à arriver au dernier. b) Algorithme 0) DEF PROC Tri_insertion ( var T :tab ; N : entier) 1) Pour i de 2 à N Faire ji aux  T [ i ] Tant que (j > 1) ET ( T [ j – 1] > aux ) Faire Décalage de tous les éléments T[j]T[j–1] supérieurs à aux, «T [ i ]» dans la jj–1 Fin Tant que liste triée T [ j ]  Aux Fin Pour 2) Fin Tri_insertion II. TRI SHELLa) Principe - C’est une variante du tri par insertion - Shell propose une suite définie par : U1=1 et Un+1= 3 * Un +1 pour déterminer la valeur du pas. - Trie chaque liste d’éléments séparés par p positions chacun avec un tri par insertion.b) Exemple T 72 61 44 80 70 85 21 23 51 87 74 94 20 17 56c) Analyse de la procédure TRI_SHELL Résultat= T 2) T= [ ] Tant que p>0 faire P  p div 3 Pour i de p à n faire Aux  T[i] Ji Tant que (j>p-1) et (T[j-p]>aux) Faire T[j]  T[j-p] J  j-p Fin Tant que T[j] aux Fin pour Fin Tant que 1) P=[p0 ] Tant que p<n Faire P  3*p+1 Fin Tant que Enseignant: Mr SAYARI Page 2 /4 4 S.INFO
  3. 3. Algorithmes de TRI Algorithmique & Programmationd) Algorithme 0) DEF PROC TRI_SHELL (var T : tab ; n : entier) 1) P  0 Tant que p<n Faire P  3*p+1 Fin Tant que 2) Tant que p>0 faire P  p div 3 Pour i de p à n faire Aux  T[i] Ji Tant que (j>p-1) et (T[j-p]>aux) Faire T[j]  T[j-p] J  j-p Fin Tant que T[j] aux Fin pour Fin Tant que 3) Fin TRI_SHELL III. Application : TRI PAR FUSION a) principe - Le tri fusion est construit suivant la stratégie "diviser pour régner". - Le principe de base de la stratégie "diviser pour régner" est que pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires. Une fois chaque petit problème résolu, il n’y a plus qu’à combiner les différentes solutions pour résoudre le problème global. - La méthode "diviser pour régner" est tout à fait applicable au problème de tri : plutôt que de trier le tableau complet, il est préférable de trier deux sous tableaux de taille égale, puis de fusionner les résultats. - L’algorithme de tri par fusion à développer est récursif, En effet, les deux sous tableaux seront eux même triés à l’aide de l’algorithme de tri fusion. Un tableau ne comportant qu’un seul élément sera considéré comme trié. - Etapes de l’algorithme : Division de l’ensemble de valeurs en deux parties Tri de chacun des deux ensembles Fusion des deux ensembles b) Analyse de la procédure Tri_fusion DEF PROC TRI_FUSION (var T : tab ; d,f : entier) Résultat= TRI_FUSION TRI_FUSION= [ ] SI (d<f) Alors Mil (d+f) div 2 proc tri_fusion (t,d,mil) proc tri_Fusion(t,mil+1,f) proc fusionner(t,d,mil,f) Fin Si Enseignant: Mr SAYARI Page 3 /4 4 S.INFO
  4. 4. Algorithmes de TRI Algorithmique & Programmation c) Analyse de la procédure Fusionner DEF PROC FUSIONNER (var T :tab ; d,mil,f :entier) Résultat= T T= [ ] pour i de d à f faire T[i]  V[i] Fn pour V= [i d , j mil+1 ] pour k de d à f faire Si (i<=mil) et (t[i] < t[j]) ou (j>f) alors V[k]  T[i] i  i+1 Sinon V[k]  T[j] j j+1 Fin si Fin pourEnseignant: Mr SAYARI Page 4 /4 4 S.INFO

×