Tri par insertion
Le tri par insertion, comme le tri par sélection, consiste à découper la liste en deux parties :
Une partie triée située en début de liste
Une partie non triée située en fin de liste
Le changement majeur est qu'au lieu de chercher la valeur minimale dans la partie non triée, on va récupérer la première valeur qu'on va insérer dans la première partie (en respectant l'ordre croissant).
C'est le tri des jeux de cartes.

Une animation en ligne permet également de visualiser l'algorithme. Bien sélectionner « INS » en haut.
Méthode : Programmation
Pour réaliser le tri par insertion, il faut séparer les étapes en fonctions pour simplifier le programme final :
Une fonction insertion, qui insert au bon endroit la valeur passée en argument et décale le reste de la liste
Une fonction tri_insertion, trie la liste
Voici plus en détail les fonctions spécifiées.
La fonction
insertion, prend en paramètres, la liste, et un indices et insert l’élément correspondant à l'indice au bon endroit, en supposant qu'avant l'indice la sous-liste soit triée.Exemple : Si
l = [1, 6, 2, 4], alorsinsertion(l, 2)modifiel, etlvaut.[1, 2, 6, 4]
insertion(l, i):
valeur prend la valeur de l[i]
j prend la valeur 0
Tant que j est inférieur à i et que l[j] est inférieur à valeur:
j est incrémenté de 1
Tant que j est inférieur ou égal à i:
valeur et l[j] sont échangés
j est incrémenté de 1
La fonction tri_insertion prend en paramètres la liste et la trie en place, en utilisant la méthode du tri par insertion.
Exemple : Si
l = [1, 6, 4, 2], alorstri_insertion(l)modifiel, etlvaut.[1, 2, 4, 6]
tri_insertion(l):
Pour i allant de 1 à la longueur de l:
on appelle insertion avec l et i