SlideShare une entreprise Scribd logo
2
Plus lue
3
Plus lue
Algorithmes de TRI                                                              Algorithmique & Programmation



I. Rappels
      1) Activité 1 (Tri à bulles)
   a) Principe
Le principe de cette méthode de tri consiste à balayer tout le tableau, comparer les éléments consécutifs
et les échanger s'ils 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 tableau
est 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_bulles

2) 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
Algorithmes de TRI                                                                 Algorithmique & Programmation


3) 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 SHELL
a) 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         56

c) 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
Algorithmes de TRI                                                             Algorithmique & Programmation

d) 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
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 pour




Enseignant: Mr SAYARI                                         Page 4 /4                                      4 S.INFO

Contenu connexe

PDF
Chapitre iv algorithmes de tri
PDF
Les algorithmes d'arithmetique
PDF
Exercices algo
PDF
Serie algos approximationx
PDF
Mes devoirs 4 si
PDF
Les algorithmes recurrents
PDF
02 correction-td smi-s3-algo2
PDF
Chapitre iv algorithmes de tri
Les algorithmes d'arithmetique
Exercices algo
Serie algos approximationx
Mes devoirs 4 si
Les algorithmes recurrents
02 correction-td smi-s3-algo2

Tendances (20)

PDF
Devoirs Algorithme + correction pour 4 si
PDF
Chapitre 4 récursivité
PDF
Cours algorithmique et complexite complet
PPTX
Les algorithmes d’approximation
PDF
Les enregistrements
PDF
Algorithmes d'approximation
PDF
Résumé javascript
PDF
Travaux dirigés 1: algorithme & structures de données (corrigés)
PDF
Chap04 les-algorithme-de-tri-et-de-recherche
PDF
Chapitre ii complexité et optimalité
PPSX
Cours Algorithme: Matrice
PDF
Chapitre iii récursivité et paradigme diviser pour régner
PDF
Algorithmique programmation2018
PDF
Récursivité
PDF
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
PDF
Programmation en C
PDF
Serie recurrents & arithmetiques
PDF
Cours : les listes chainées Prof. KHALIFA MANSOURI
PDF
Chapitre 2 complexité
PDF
Cours de programmation en c
Devoirs Algorithme + correction pour 4 si
Chapitre 4 récursivité
Cours algorithmique et complexite complet
Les algorithmes d’approximation
Les enregistrements
Algorithmes d'approximation
Résumé javascript
Travaux dirigés 1: algorithme & structures de données (corrigés)
Chap04 les-algorithme-de-tri-et-de-recherche
Chapitre ii complexité et optimalité
Cours Algorithme: Matrice
Chapitre iii récursivité et paradigme diviser pour régner
Algorithmique programmation2018
Récursivité
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
Programmation en C
Serie recurrents & arithmetiques
Cours : les listes chainées Prof. KHALIFA MANSOURI
Chapitre 2 complexité
Cours de programmation en c
Publicité

En vedette (17)

PDF
Serie tri revision_3si
PDF
Ch5 Algorthmique Avancée - Algorithme de Tri
PDF
PDF
Les algorithmes avancés
PPSX
Animations tris
PDF
Algo tri
PPT
PDF
Correction
PDF
Sujets de preparation bac tp (sayari)
PDF
Les algorithmes de tri
PDF
exercices-corriges-dalgorithmique
PDF
Chapitre 3 Les algorithmes de recherche et de tris
PDF
Ch2 Algorthmique Avancée - Récursivité
PDF
PDF
Ch7 algorithmes NP-Copmlétude
PDF
Ch3 Algorthmique Avancée - Méthodes Récursives
PPT
Cours as dch3
Serie tri revision_3si
Ch5 Algorthmique Avancée - Algorithme de Tri
Les algorithmes avancés
Animations tris
Algo tri
Correction
Sujets de preparation bac tp (sayari)
Les algorithmes de tri
exercices-corriges-dalgorithmique
Chapitre 3 Les algorithmes de recherche et de tris
Ch2 Algorthmique Avancée - Récursivité
Ch7 algorithmes NP-Copmlétude
Ch3 Algorthmique Avancée - Méthodes Récursives
Cours as dch3
Publicité

Similaire à Algorithmes de tri (20)

DOCX
Resumer sur les tris
PDF
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
DOCX
Le tri dans un tableau en algo
PDF
Algorithmique seconde (corrigés et commentaires)
PPT
Cours Algo 1 Resume
PDF
éNoncés+corrections bac2009
PDF
Algorithmique et programmation michael griffith
PPTX
TD2_Algo.pptx algorithme ecole nationale du science
PDF
Cours d'algorithmique
PDF
Algo3.pdf
PPT
animations_tris_2025animations_tris_2025.ppt
PDF
Resume_Algorithmique (1).pdf
PPTX
Les algorithmes de recherche2017i
PDF
Cours algorithmique et complexite
PDF
Cours algorithmique et complexite complet
PDF
éNoncés+corrections bac2010
PDF
Chapitre 1 rappel
PDF
cours-algorithmique-ensam-partie2_compress.pdf
PPT
cours algorithmes et programmation explique
Resumer sur les tris
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Le tri dans un tableau en algo
Algorithmique seconde (corrigés et commentaires)
Cours Algo 1 Resume
éNoncés+corrections bac2009
Algorithmique et programmation michael griffith
TD2_Algo.pptx algorithme ecole nationale du science
Cours d'algorithmique
Algo3.pdf
animations_tris_2025animations_tris_2025.ppt
Resume_Algorithmique (1).pdf
Les algorithmes de recherche2017i
Cours algorithmique et complexite
Cours algorithmique et complexite complet
éNoncés+corrections bac2010
Chapitre 1 rappel
cours-algorithmique-ensam-partie2_compress.pdf
cours algorithmes et programmation explique

Algorithmes de tri

  • 1. Algorithmes de TRI Algorithmique & Programmation I. Rappels 1) Activité 1 (Tri à bulles) a) Principe Le principe de cette méthode de tri consiste à balayer tout le tableau, comparer les éléments consécutifs et les échanger s'ils 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 tableau est 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_bulles 2) 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. Algorithmes de TRI Algorithmique & Programmation 3) 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 SHELL a) 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 56 c) 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. Algorithmes de TRI Algorithmique & Programmation d) 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. 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 pour Enseignant: Mr SAYARI Page 4 /4 4 S.INFO