Dans cet article, nous explorerons le fonctionnement du tri par insertion en Python, son implémentation et ses performances.
Le tri par insertion est un algorithme de tri simple et efficace qui convient particulièrement aux petites listes ou aux listes déjà partiellement triées.
Le tri par insertion fonctionne en divisant la liste en deux parties : une partie triée et une partie non triée. L’algorithme sélectionne un élément de la partie non triée et l’insère à la bonne position dans la partie triée, déplaçant les éléments plus grands d’une position vers la droite.
Voici une implémentation simple du tri par insertion en Python :
def tri_insertion(arr):
for i in range(1, len(arr)):
cle = arr[i]
j = i - 1
while j >= 0 and cle < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = cle
# Exemple d'utilisation
ma_liste = [12, 11, 13, 5, 6]
tri_insertion(ma_liste)
print("Liste triée:", ma_liste) Le tri par insertion a une complexité temporelle moyenne de O(n^2), ce qui le rend moins efficace sur de grandes listes non triées. Cependant, il peut être plus rapide que d’autres algorithmes de tri sur de petites listes ou des listes partiellement triées.
Avantages et Inconvénients :
Avantages :
Inconvénients :
liste_non_triee = [5, 2, 9, 1, 5]
tri_insertion(liste_non_triee) liste_partiellement_triee = [1, 2, 3, 7, 5, 6, 4]
tri_insertion(liste_partiellement_triee) ma_liste = [3, 1, 4, 1, 5, 9, 2, 6, 5]
tri_insertion(ma_liste)
doublons = [ma_liste[i] for i in range(1, len(ma_liste)) if ma_liste[i] == ma_liste[i - 1]] # Utilisation dans un algorithme d'optimisation
def algorithme_optimisation(donnees):
tri_insertion(donnees)
# Autres étapes de l'algorithme # Exemple pédagogique
def demonstration_tri_insertion():
donnees = [4, 2, 7, 1, 9, 5]
tri_insertion(donnees)
print("Liste triée:", donnees)
demonstration_tri_insertion() Remarque : Bien que le tri par insertion convienne à ces scénarios, il est essentiel de choisir l’algorithme de tri en fonction des besoins spécifiques et des caractéristiques des données. Pour de grandes listes non triées, optez plutôt pour des algorithmes de tri plus rapides, tels que le tri rapide.
# Mauvaise initialisation
ma_liste = None
tri_insertion(ma_liste) # Cela générera une erreur
# Initialisation correcte
ma_liste_correcte = [3, 1, 4, 1, 5, 9, 2, 6, 5]
tri_insertion(ma_liste_correcte) # Fonctionnera correctement for i in range(1, len(liste)): # Correct : la boucle doit commencer à l'indice 1
for i in range(len(liste) - 1): # Incorrect : la boucle ne considère pas le dernier élément # Mauvaise gestion des éléments identiques
[4, 2, 7, 1, 9, 5, 1, 6, 5] # Le tri peut produire [1, 1, 2, 4, 5, 5, 6, 7, 9]
# Gestion correcte
[4, 2, 7, 1, 9, 5, 1, 6, 5]
# Après le tri, les éléments identiques restent dans l'ordre d'origine [1, 1, 2, 4, 5, 5, 6, 7, 9] # Mauvaise utilisation des variables temporaires
while j >= 0 and element_courant > liste[j]: # La comparaison est incorrecte
# Utilisation correcte
while j >= 0 and element_courant < liste[j]: # Comparaison correcte def tri_insertion(liste):
# Logique de tri
return liste # Oublier cette étape peut conduire à une liste non triée # Test sur une liste déjà triée
ma_liste_triee = [1, 2, 3, 4, 5]
tri_insertion(ma_liste_triee) # Assurez-vous que la liste reste inchangée En évitant ces erreurs courantes, vous pouvez garantir une implémentation correcte et fiable de l’algorithme de tri par insertion en Python.
Conclusion :
Le tri par insertion en Python est un choix judicieux pour trier de petites listes ou des listes déjà partiellement triées. Son implémentation simple en fait un excellent choix pour des situations où la simplicité prime sur la vitesse. Cependant, pour des listes plus importantes, d’autres algorithmes de tri plus efficaces peuvent être préférables.
Lire aussi : Tris par Insertion en Python : Exercices Corrigés
Deux outils concrets pour piloter la qualité sans alourdir vos équipes Un système qualité n’avance…
Un chantier se gagne souvent avant même l’arrivée des équipes. Quand tout est clair dès…
Le mariage a du sens quand il repose sur une décision libre, mûrie et partagée.…
Une étude de cas réussie commence par une structure sûre. Ce modèle Word vous guide…
Les soft skills se repèrent vite sur une fiche, mais elles ne pèsent vraiment que…
Outil de comparaison et repérage des offres étudiantes Choisir des verres progressifs ressemble rarement à…
This website uses cookies.