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 1 1.1 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 1 1.2 Exemple On veut trier les éléments: 42, 20, 17, 13, 28, 14, 23 et 15 42 20 17 13 28 14 23 15 13 20 17 42 28 14 23 15 13 14 17 42 28 20 23 15 13 14 15 42 28 20 23 17 13 14 15 17 28 20 23 42 13 14 15 17 20 28 23 42 13 14 15 17 20 23 28 42 13 14 15 17 20 23 28 42 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 1 1.4 Complexité

10 Tri par Insertion 2 2.1 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 2 2.2 Exemple On veut trier les éléments: 42, 20, 17, 13, 28, 14, 23 et 15 42 20 17 13 28 14 23 15 20 42 17 13 28 14 23 15 17 20 42 13 28 14 23 15 13 17 20 42 28 14 23 15 13 17 20 28 42 14 23 15 13 14 17 20 28 42 23 15 13 14 17 20 23 28 42 15 13 14 15 17 20 23 28 42 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 2 2.4 Complexité

15 Tri par Insertion 2 2.4 Complexité

16 Tri par Bulles 3 3.1 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 3 3.2 Exemple Même exemple 42 20 17 13 28 14 23 15 k=2k=8k=7k=6k=5k=4k=3 42 20 17 13 28 14 15 23 42 20 17 13 28 14 15 23 42 20 17 13 14 28 15 23 42 20 17 13 14 28 15 23 42 20 13 17 14 28 15 23 42 13 20 17 14 28 15 23 13 42 20 17 14 28 15 23 k=8k=7k=6k=5k=4k=3 13 42 20 17 14 28 15 23 13 42 20 17 14 15 28 23 13 42 20 17 14 15 28 23 13 42 20 14 17 15 28 23 13 42 14 20 17 15 28 23 13 14 42 20 17 15 28 23 i=1i=2

18 13 14 42 20 17 15 28 23 Tri par Bulles 3 3.2 Exemple Même exemple k=8k=7k=6k=5k=4 13 14 15 42 20 17 23 28 k=8k=7k=6k=5 i=3i=4 13 14 42 20 17 15 23 28 13 14 42 20 17 15 23 28 13 14 42 20 15 17 23 28 13 14 42 15 20 17 23 28 13 14 15 42 20 17 23 28 13 14 15 42 20 17 23 28 13 14 15 42 20 17 23 28 13 14 15 42 17 20 23 28 13 14 15 17 42 20 23 28

19 13 14 15 17 42 20 23 28 Tri par Bulles 3 3.2 Exemple Même exemple k=8k=7k=6 13 14 15 17 20 42 23 28 k=8k=7 i=5i=6 13 14 15 17 42 20 23 28 13 14 15 17 42 20 23 28 13 14 15 17 20 42 23 28 13 14 15 17 20 42 23 28 13 14 15 17 20 23 42 28 k=8 i=7 13 14 15 17 20 23 42 28 13 14 15 17 20 23 28 42

20 Tri par Bulles 3

21 3 3.4 Complexité

22 Tri par Bulles 3 3.3 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] { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.fr/1697134/6/slides/slide_21.jpg", "name": "Tri par Bulles 3 3.3 Implémentation Procédure TriBulles(t : Tableau[1..", "description": "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 4 4.1 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 4 4.2 Exemple 20171328142315 42 15201713281423 15201713281423 15201713281423 15201713281423 15201713281423 15201713281423 1520171328142342

25 Tri Rapide 4 4.2 Exemple 20171328142342 15 20171328142342 14201713282342 14171328202342 14171328202342 14131728202342 1413151728202342

26 Tri Rapide 4 4.2 Exemple 17 131528202342 14 13141528202342 13141528202342 1314151728202342 13141517202342 28 13141517232042 1314151723202842

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 4 4.3 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 4 4.4 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