Objectif : Ecrire un programme Java implémentant l'algorithme du tri par insertion.
Spécifications de l’algorithme :
Algorithme Tri_Insertion
local: i , j , n, v Î Entiers naturels
Entrée : Tab Î Tableau d'Entiers naturels de 0 à n éléments
Sortie : Tab Î Tableau d'Entiers naturels de 0 à n éléments
{ dans la cellule de rang 0 se trouve une sentinelle chargée d'éviter de tester dans la boucle tantque .. faire si l'indice j n'est pas inférieur à 1, elle aura une valeur inférieure à toute valeur possible de la liste
}
début
pour i de2 jusquà n faire// la partie non encore triée (ai, ai+1, ... , an)
v ¬ Tab[ i ] ; // l'élément frontière : ai
j ¬ i ; // le rang de l'élément frontière
Tantque Tab[ j-1 ] > v faire//on travaille sur la partie déjà triée (a1, a2, ... , ai)
Tab[ j ] ¬ Tab[ j-1 ]; // on décale l'élément
j ¬ j-1; // on passe au rang précédent
FinTant ;
Tab[ j ] ¬ v //on recopie ai dans la place libérée
fpour
Fin Tri_InsertionProposition de squelette de classe Java à implanter :