Numérique et Sciences Informatiques > Algorithmique : Tris et Recherche > Algorithmes de Tri Élémentaires > Tri par sélection

Implémentation du Tri par Sélection en Python

Apprenez à implémenter le tri par sélection en Python avec un code clair et commenté. Comprenez chaque ligne et adaptez le code à vos besoins.

Fonctionnement du Code

Ce code implémente l'algorithme du tri par sélection en Python. La fonction tri_selection(tableau) prend un tableau en entrée et le trie en place, c'est-à-dire qu'elle modifie le tableau original. Le code parcourt le tableau et trouve le minimum dans la partie non triée, puis l'échange avec l'élément courant.

Code Python

Voici le code Python pour le tri par sélection :

python def tri_selection(tableau): n = len(tableau) for i in range(n-1): min_index = i for j in range(i+1, n): if tableau[j] < tableau[min_index]: min_index = j if min_index != i: tableau[i], tableau[min_index] = tableau[min_index], tableau[i] return tableau # Exemple d'utilisation tableau = [64, 25, 12, 22, 11] tableau_trie = tri_selection(tableau) print(f"Tableau trié : {tableau_trie}")

Explication du Code Ligne par Ligne

  • def tri_selection(tableau): : Définit la fonction tri_selection qui prend un tableau en entrée.
  • n = len(tableau): : Récupère la longueur du tableau.
  • for i in range(n-1): : Boucle principale qui parcourt le tableau de 0 à n-2. La dernière itération (n-1) n'est pas nécessaire car après n-2 itérations, le dernier élément est automatiquement à sa place.
  • min_index = i: : Initialise l'indice du minimum à l'indice courant i.
  • for j in range(i+1, n): : Boucle interne qui parcourt la partie non triée du tableau (de i+1 à la fin).
  • if tableau[j] < tableau[min_index]: : Compare l'élément à l'indice j avec l'élément minimum actuel. Si l'élément à l'indice j est plus petit, on met à jour min_index.
  • if min_index != i: : Après avoir trouvé le minimum dans la partie non triée, on vérifie si le minimum est différent de l'élément courant.
  • tableau[i], tableau[min_index] = tableau[min_index], tableau[i]: : Si le minimum est différent de l'élément courant, on échange les deux éléments. Cette ligne utilise l'affectation multiple de Python pour échanger les valeurs.
  • return tableau : Retourne le tableau trié.

Adaptation du Code

Vous pouvez adapter ce code pour trier en ordre décroissant en changeant la condition if tableau[j] < tableau[min_index]: en if tableau[j] > tableau[min_index]:. Vous pouvez également l'adapter pour trier d'autres types de données, à condition de pouvoir les comparer avec les opérateurs < et >.

Ce qu'il faut retenir

  • Le tri par sélection peut être facilement implémenté en Python.
  • Le code parcourt le tableau et trouve le minimum à chaque itération, puis l'échange avec l'élément courant.
  • Le code est simple mais peu efficace pour les grands tableaux.
  • Comprendre le code ligne par ligne permet de l'adapter à d'autres besoins.

FAQ

  • Comment trier un tableau en ordre décroissant avec ce code ?

    Modifiez la condition if tableau[j] < tableau[min_index]: en if tableau[j] > tableau[min_index]:.
  • Ce code fonctionne-t-il pour les tableaux contenant des chaînes de caractères ?

    Oui, ce code fonctionne aussi pour les tableaux contenant des chaînes de caractères, à condition que les chaînes de caractères soient comparables (par ordre alphabétique).