La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tri par Sélection Tri par Sélection Tri par Insertion Tri par Insertion Tri Bulles Tri Bulles Tri Rapide Tri Rapide A. Lotfi mai 2012 Introduction Introduction.

Présentations similaires


Présentation au sujet: "Tri par Sélection Tri par Sélection Tri par Insertion Tri par Insertion Tri Bulles Tri Bulles Tri Rapide Tri Rapide A. Lotfi mai 2012 Introduction Introduction."— Transcription de la présentation:

1 Tri par Sélection Tri par Sélection Tri par Insertion Tri par Insertion Tri Bulles Tri Bulles Tri Rapide Tri Rapide A. Lotfi mai 2012 Introduction Introduction

2 Introduction 0.1 Définition « trier » signifie « répartir en plusieurs classes selon certains critères ». De manière plus restrictive, le terme de « tri » en algorithmique est très souvent attaché au processus de classement d'un ensemble d'éléments dans un ordre donné. Par exemple, trier N entiers dans l'ordre croissant, ou N noms dans l'ordre alphabétique. Tout ensemble muni d'un ordre total peut fournir une suite d'éléments à trier. Le tri est sans doute le problème fondamental de lalgorithmique 1. plus de 25% des CPU cycles sont dans les tris 2. le tri est fondamental à beaucoup dautres problèmes, par exemple recherche binaire. 0

3 Introduction 0.2 Utilité Ainsi donc, après le tri, beaucoup de problèmes deviennent faciles à résoudre. Par exemple : 1. Unicité déléments: après le tri tester les éléments adjacents 2. Une fois le tri fait, on peut déterminer le k ème plus grand élément en O(1) Les problèmes de tri discutés dans ce cours sont ceux où lensemble des données à trier se trouvent en mémoire centrale. Les problèmes de tri dont les données sont en mémoire secondaire ne sont pas discutés dans ce cours. 0

4 Introduction 0.3 Présentation du problème 0

5 Tri par Sélection Principe Répéter 1. chercher le plus grand (le plus petit) élément => Sélection 2. le mettre à la fin (au début) i n 1 t Les i-1 petits éléments triés Le plus petit élément du reste

6 Tri par Sélection Exemple On veut trier les éléments: 42, 20, 17, 13, 28, 14, 23 et i=1i=2i=3i=4i=5i=6i=7

7 Tri par Sélection 1

8 1 1.3 Implémentation Procédure TriSelection(t : Tableau[1.. Max] dentiers, nbElements : naturel) i, k, indMin : naturel; temp : entier; Début Pour i=1 à nbElements-1 faire /* recherche du numéro du minimum */ indMin = i; Pour k=i+1 à nbElements faire si (t[k] < t[indMin]) alors indMin = k; Fin Si Fin Pour /* échange des valeurs entre la case courante et le minimum */ temp = t[i]; t[i] = t[indMin]; t[indMin] = tmp; Fin Pour Fin

9 Tri par Sélection Complexité

10 Tri par Insertion Principe Insertion du prochain élément dans la partie qui est déjà triée précédemment La partie de départ qui est triée est le premier élément Il se pourrait quon a à déplacer plusieurs éléments pour linsertion i n 1 t Les i-1 premiers éléments déjà triés Les éléments non triés Eléments à insérer

11 Tri par Insertion Exemple On veut trier les éléments: 42, 20, 17, 13, 28, 14, 23 et i=7i=1i=2i=3i=4i=5i=6

12 Tri par Insertion 2

13 2 2.3 Implémentation Procedure TriInsertion(t : Tableau[1.. Max] dentiers, nbElements : naturel) i, k : naturels; temp : entier; Début Pour i=2 à nbElements faire temp = t[i]; k = i; Tant que (k > 1 et t[k-1] > temp) faire t[k] = t[k - 1]; k = k - 1; Fin tant que t[k] = temp; Fin pour Fin

14 Tri par Insertion Complexité

15 Tri par Insertion Complexité

16 Tri par Bulles Principe La stratégie de cet algorithme est : 1. Parcourir le tableau en comparant deux à deux les éléments successifs, permuter s'ils ne sont pas dans l'ordre 2. Répéter tant que des permutations sont effectuées. i n 1 t Les i-1 premiers éléments déjà triés Les éléments non triés Niveau 0 Le plus petit remonte en surface

17 Tri par Bulles Exemple Même exemple k=2k=8k=7k=6k=5k=4k= k=8k=7k=6k=5k=4k= i=1i=2

18 Tri par Bulles Exemple Même exemple k=8k=7k=6k=5k= k=8k=7k=6k=5 i=3i=

19 Tri par Bulles Exemple Même exemple k=8k=7k= k=8k=7 i=5i= k=8 i=

20 Tri par Bulles 3

21 3 3.4 Complexité

22 Tri par Bulles Implémentation Procédure TriBulles(t : Tableau[1.. Max] dentiers, nbElements : Naturel) i, k : Naturels; Début Pour i=1 à nbElements-1 faire Pour k=nbElements à i+1 faire Si t[k]

23 Tri Rapide Principe Inventé en 1960 par Sir Charles Antony Richard Hoare Consiste à: Choisir un élément « pivot » Diviser lensemble à deux sous-ensembles Répéter la procédure récursivement pivot n1 t Éléments supérieurs au pivot Éléments inférieurs au pivot Pivot

24 Tri Rapide Exemple

25 Tri Rapide Exemple

26 Tri Rapide Exemple

27 Tri Rapide 4

28 4 4.3 Implémentation Fonction indicePivot=Partition(t,debut,fin) Pivot : entier i, j, pivot : naturels Next : caractère Début pivot=t(debut); vide=debut; i=debut+1; j=fin; next='j'; Tant que i<=j faire Si next=='j' alors Si t(j)pivot alors t(vide)=t(i); vide=i; i=i+1; next='j'; Sinon i=i+1; next='i'; Fin si Fin tant que indicePivot=vide; t(vide)=pivot; Fin

29 Tri Rapide Implémentation Procedure TriRapide(t : Tableau. Max] dentiers, debut, fin : Naturels) indicePivot : naturel Début Si fin>debut alors indicePivot=Partition(t, debut, fin); TriRapide(t, debut, indicePivot-1); TriRapide(t, indicePivot+1, fin); Fin si Fin /* Programme principal */ procédure CallerProgram(t : Tableau[1.. Max] dentiers) Début TriRapide(t, 1, N); Fin

30 Tri Rapide Complexité La partie du tri la plus sensible reste le choix du pivot. Dans l'algorithme précédent, il est choisi au hasard parmi les éléments du tableau, mais ce choix peut se révéler catastrophique : si le pivot est à chaque choix le plus petit élément du tableau, alors le tri rapide dégénère en tri par sélection. En général, la complexité de ce tri est : dans le meilleur des cas, en O (N log 2 N) ; en moyenne, en O (N log 2 N) ; dans le pire des cas, en O (N 2 ). Il existe bon nombre d'astuces pour rendre le cas dégénéré du tri rapide le plus improbable possible, ce qui rend finalement cette méthode la plus rapide en moyenne parmi toutes celles utilisées.


Télécharger ppt "Tri par Sélection Tri par Sélection Tri par Insertion Tri par Insertion Tri Bulles Tri Bulles Tri Rapide Tri Rapide A. Lotfi mai 2012 Introduction Introduction."

Présentations similaires


Annonces Google