Le Tri Par Sélection - Youtube
Le tri par sélection peut aussi être utilisé sur des listes. Le principe est identique, mais au lieu de déplacer les éléments par échanges, on réalise des suppressions et insertions dans la liste. Correction [ modifier | modifier le code] L' invariant de boucle suivant permet de prouver la correction de l'algorithme: à la fin de l'étape i, le tableau est une permutation du tableau initial et les i premiers éléments du tableau coïncident avec les i premiers éléments du tableau trié. Propriétés [ modifier | modifier le code] Le tri par sélection est un tri en place (les éléments sont triés directement dans la structure). Implémenté comme indiqué ci-dessus, ce n'est pas un tri stable (l'ordre d'apparition des éléments égaux n'est pas préservé). Algorithmes de tri par insertion et de tri par sélection. Toutefois, si l'on travaille sur une structure de données adaptée (typiquement une liste), il est facile de le rendre stable: à chaque itération, il convient de chercher la première occurrence de l'élément le plus petit de la partie non triée de la liste, et de l'insérer avant le premier élément de la partie non triée de la liste, plutôt que de l'échanger avec celui-ci.
Tri Par Extraction Techniques
/**sous programme codant le tri par la methode tri par bulles void triBulle ( Tableau T, int nb) printf ( "Tri par Bulles, initialement T = "); for ( i = 0; i < nb; i ++) for ( j = 0; j < nb - 1; j ++) if ( T [ j] > T [ j + 1]) permuter ( T, j, j + 1);}}} printf ( "fin du tri par Bulles, nb comparaisons =%d, nb permutations =%d. Tri par extraction dent de sagesse. \n ", nbComp, nbPermut); printf ( "Tri par Bulles, maintenant T = "); Le tri par extraction est plus économe en termes de permutations. Au premier tour de tri, l'élément le plus grand du tableau à trier est recherché, puis il est échangé avec la dernière valeur du tableau (si besoin) Au second tour de tri, il y a recherche du second élément le plus grand qui est placé à l'avant dernière place, etc... on prend 10 et on cherche dans les précédents la plus grande valeur supérieure à 10 aucune n'est trouvée, le tableau reste identique. au tour suivant, on prend 5 et on cherche dans les précédents la plus grande valeur supérieure à 5. 9 est trouvé, les places sont échangées: T = [8, 6, 5, 9, 10] au tour suivant, on prend 5 et on cherche dans les précédents la plus grande valeur supérieure à 5.
Interprétation Un exercice On utilise un algorithme de tri de coût quadratique. Il met 3 secondes pour trier un liste de 10 000 nombres. Quel sera le temps approximativement pour trier 20 000 nombres? Solution On calcule le rapport des nombres d'éléments de chaque liste: pour passer de 10 000 à 20 000 on multiplie par 2. Donc le temps sera multiplié par 2² = 4. Soit 3 × 4 = 12 secondes.