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
FAQ
-
Comment trier un tableau en ordre décroissant avec ce code ?
Modifiez la conditionif tableau[j] < tableau[min_index]:
enif 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).