SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
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

Tendances

Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiquesmohamed_SAYARI
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombressalah fenni
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac infoborhen boukthir
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)mohamed_SAYARI
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Resume javascript
Resume javascriptResume javascript
Resume javascriptJesseraniba
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).vangogue
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données IIRiadh Bouslimi
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 

Tendances (20)

Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiques
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Serie2
Serie2Serie2
Serie2
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombres
 
Résumé javascript bac info
Résumé javascript bac infoRésumé javascript bac info
Résumé javascript bac info
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI
 
Resume javascript
Resume javascriptResume javascript
Resume javascript
 
Mes devoirs 4 si
Mes devoirs 4 siMes devoirs 4 si
Mes devoirs 4 si
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 

En vedette

Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrentsmohamed_SAYARI
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Trilotfibenromdhane
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisMohamed Lahby
 
Ch2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - RécursivitéCh2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - Récursivitélotfibenromdhane
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétudelotfibenromdhane
 
Ch3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes RécursivesCh3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes Récursiveslotfibenromdhane
 

En vedette (18)

Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
Ch5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de TriCh5 Algorthmique Avancée - Algorithme de Tri
Ch5 Algorthmique Avancée - Algorithme de Tri
 
Serie
SerieSerie
Serie
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
Animations tris
Animations trisAnimations tris
Animations tris
 
Algo tri
Algo triAlgo tri
Algo tri
 
Coursasdch3
Coursasdch3Coursasdch3
Coursasdch3
 
Correction
CorrectionCorrection
Correction
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Les algorithmes de tri
Les algorithmes de triLes algorithmes de tri
Les algorithmes de tri
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de tris
 
Ch2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - RécursivitéCh2 Algorthmique Avancée - Récursivité
Ch2 Algorthmique Avancée - Récursivité
 
Cats
CatsCats
Cats
 
Ch7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-CopmlétudeCh7 algorithmes NP-Copmlétude
Ch7 algorithmes NP-Copmlétude
 
Ch3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes RécursivesCh3 Algorthmique Avancée - Méthodes Récursives
Ch3 Algorthmique Avancée - Méthodes Récursives
 
Cours as dch3
Cours as dch3Cours as dch3
Cours as dch3
 

Similaire à Algorithmes de tri

Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Resumer algorithme recurent
Resumer algorithme recurentResumer algorithme recurent
Resumer algorithme recurentborhen boukthir
 
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptxAlgo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptxNabil Alami
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: TableauInforMatica34
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptx20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptxNabil Alami
 

Similaire à Algorithmes de tri (17)

Resumer sur les tris
Resumer sur les trisResumer sur les tris
Resumer sur les tris
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Correction td2
Correction td2Correction td2
Correction td2
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Courbes
CourbesCourbes
Courbes
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Algo3.pdf
Algo3.pdfAlgo3.pdf
Algo3.pdf
 
Resumer algorithme recurent
Resumer algorithme recurentResumer algorithme recurent
Resumer algorithme recurent
 
Séries de Fourier
Séries de FourierSéries de Fourier
Séries de Fourier
 
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptxAlgo et complexite file pilezzzzzzzzzzzzzzzz.pptx
Algo et complexite file pilezzzzzzzzzzzzzzzz.pptx
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptx20XX-XX.cours.complexite.powerpoint.sdd.pptx
20XX-XX.cours.complexite.powerpoint.sdd.pptx
 

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