background preloader

Algorithmes de tri

Facebook Twitter

NSI - 1re - Algorithme de tri. NSI - 1re - Algorithme de tri. GRAIN : Algorithmes de tri. Tri fusion. Il s’agit à nouveau d’un tri suivant le paradigme diviser pour régner.

Tri fusion

Le principe du tri fusion (ou tri par interclassement) en est le suivant : On divise en deux moitiés la liste à trier (en prenant par exemple, un élément sur deux pour chacune des listes). On trie chacune d’entre elles. On fusionne les deux moitiés obtenues pour reconstituer la liste triée. Algorithme de tri par selection du minimum. Le principe du tri par sélection/échange (ou tri par extraction) est d'aller chercher le plus petit élément du vecteur pour le mettre en premier, puis de repartir du second élément et d'aller chercher le plus petit élément du vecteur pour le mettre en second, etc...

Algorithme de tri par selection du minimum

L'animation ci-après détaille le fonctionnement du tri par sélection : PROCEDURE tri_Selection ( Tableau a[1:n]) POUR i VARIANT DE 1 A n - 1 FAIRE TROUVER [j] LE PLUS PETIT ELEMENT DE [i + 1:n]; ECHANGER [j] ET [i]; FIN PROCEDURE; let rec plus_petit tab debut fin = if (debut == fin) then debut else let temp =plus_petit tab (debut+1) fin in if tab. (debut) > tab. (temp) then temp else debut;; let tri_selection tableau = for en_cours = 0 to 18 do let p = plus_petit tableau (en_cours+1) 19 in begin if p <> en_cours then begin let a = tableau. Cet algorithme n'est pas stable, comme vous pouvez le vérifier ici.

Si on applique cet algorithme au petit jeu de la page précédente, on obtient : Algorithme de tri par insertion. C'est le tri du joueur de cartes.

Algorithme de tri par insertion

On fait comme si les éléments à trier étaient donnés un par un, le premier élément constituant, à lui tout seul, une liste triée de longueur 1. On range ensuite le second élément pour constituer une liste triée de longueur 2, puis on range le troisième élément pour avoir une liste triée de longueur 3 et ainsi de suite... Le principe du tri par insertion est donc d'insérer à la nième itération le nième élément à la bonne place. Stabilité. On dit qu'un algorithme de tri est stable s'il ne modifie pas l'ordre initial des clés identiques.

Stabilité

Par exemple, imaginez que vous vouliez trier la collection de bouteilles ci-dessous par ordre de volume (le volume est indiqué sous la bouteille) : Si vous obtenez ceci, alors votre tri n'était pas stable : En effet, la bouteille noire de volume 1 se trouve maintenant avant la bouteille bleue de même volume alors qu'elle devrait être après. Il en est de même pour les deux bouteilles de volume 4 qui sont inversées par rapport à l'ordre initial.

ALGORITHMES DE TRI. On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre.

ALGORITHMES DE TRI

Les algorithmes de tri ont une grande importance pratique. Ils sont fondamentaux dans certains domaines, comme l'informatique de gestion où l'on tri de manière quasi-systématique des données avant de les utiliser. L'étude du tri est également intéressante en elle-même car il s'agit sans doute du domaine de l'algorithmique qui a été le plus étudié et qui a conduit à des résultats remarquables sur la construction d'algorithmes et l'étude de leur complexité. Pour vous donner une idée de la difficulté du problème, je vous propose le petit jeu suivant.

Il s'agit de trier quelques tonneaux (entre 3 et 10) par ordre de poids croissant. Vous ne disposez que d'une balance non étalonnée vous permettant de comparer le poids des tonneaux 2 à 2 et d'étagères pouvant vous servir de stockage intermédiaire. Comparatif des tris. L'animation ci-dessous trace les courbes de performance de plusieurs algorithmes de tri : tri par sélection, tri par insertion, tri à bulle, tri shaker, tri à peigne, tri Gnome, tri Oyelami, tri Shell, tri fusion, tri rapide.

Comparatif des tris

Vous pouvez spécifier la taille des données à trier (entre 10 et 10000), la manière dont elle sont générées (triée dans l'ordre = le meilleur des cas, dans l'ordre inverse = le pire des cas ou au hasard), l'algorithme de tri à évaluer, la couleur de la courbe et les informations reccueillies (nombre d'échanges, nombre de comparaisons ou les deux). Utilisez ensuite le bouton "calculer" pour afficher la courbe. En cas de génération aleatoire de la série à trier, vous pouvez spécifier un nombre de "passes" (entre 1 et 1000 !) À effectuer. Pour chacune de ces passes, le programme générera une nouvelle série aléatoire et calculera la moyenne des comparaisons et des déplacements.

Les données du tri apparaissent dans un onglet. Sorting Algorithms Visualized - GIFs - Imgur. Tri par fusion ( Transylvanian-saxon folk dance) Tri par sélection (Gypsy folk dance) Tri par insertion (Romanian folk dance) Algorithmes de tri. Algorithmes de tri. Algorithms in Java, Parts 1-4, 3rd edition by Robert Sedgewick. Addison Wesley, 2003. Quicksort is Optimal by Robert Sedgewick and Jon Bentley, Knuthfest, Stanford University, January, 2002. Dual Pivot Quicksort: Code by Discussion. Bubble-sort with Hungarian (“Csángó”) folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Select-sort with Gypsy folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Sorting Out Sorting, Ronald M.