Algorithmes de tri

Tri par sélection

Le tri par sélection est l'un des algorithmes de tri les plus simples et procède comme suit:

Mise en application du tri par sélection sur une liste d'entiers

Cette méthode de tri commence par rechercher l'élément de la liste ayant la plus petite valeur pour l'échanger avec celui situé en première position, puis elle recherche l'élément ayant la deuxième plus petite valeur pour l'échanger avec celui situé en deuxième position et elle recommence ainsi jusqu'à atteindre le dernier élément de la liste.

Cette méthode porte le nom de tri par sélection car elle procède à la sélection successive de l'élément minimal parmi ceux restants, comme le montre la figure ci-dessous:

algo1.jpg

Déroulement du tri par sélection sur une liste d'entiers

A mesure que l'indice i progresse vers la droite de la liste, les éléments situés à sa gauche ont pris leur position définitive et l'algorithme se termine lorsque l'indice atteint l'extrémité droite de la liste. Remarquons que l'algorithme peut également se dérouler en triant la liste depuis la droite, c'est-à-dire en sélectionnant à chaque étape le prochain plus grand élément.

A vous de jouer !

En vous basant sur les exemples présentés ci-dessus, répondez à chacun des points suivants:

  1. Appliquez le tri par sélection sur les 9 cartes d'une même famille de cartes.
  2. Décrivez chacune des étapes de progression du tri par sélection appliqué à la liste [91, 17, 2, 35, 54]. Au besoin, recourez au programme TestSelection vous permettant de valider votre réponse.
  3. Pour chacune des listes suivantes, calculez le nombre de comparaisons et le nombre d'échanges d'éléments nécessaires à son tri puis généralisez vos résultats pour des listes similaires comportant 10, 100 puis n éléments. Au besoin, recourez au programme AnalyseComplexite vous permettant de valider vos réponses.
    1. croissante = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    2. decroissante = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    3. aleatoire = [54, 26, 93, 31, 77, 17, 44, 55, 20, 36]
  4. Implémentez le tri par sélection en Python en vous basant sur le squelette téléchargeable ici.

|