next up previous contents index
suivant: Tri par fusion monter: Ordonner une séquence de précédent: Tri par recherche du   Table des matières   Index

Tri par insertion

On utilise une liste la même lisre L pour mettre la liste triée. À chaque étape on insère l'élément suivant a=L[k] dans le début de la liste qui est déjà triée. Quand on a trouvé oû il fallait insérer a par exemple entre L[j-1] et L[j] il faut lui faire de la place en décalant d'un cran vers la droite les éléments de L de j jusque k. C'est le tri par insertion.
TrieL(L):={
  local j,k,d,a,p;
  d:=dim(L)-1;
  pour k de 1 jusque d faire
    j:=0;
    a:=L[k];
    tantque a>L[j] faire j:=j+1; ftantque
    si j<k alors 
      // on d\'ecale d'un cran vers la droite
      pour p de k jusque j+1 pas -1 faire
        L[p]:=L[p-1]
      fpour;
      L[j]:=a;
    fsi
  fpour
  retourne L;
}:;
On tape :
TrieL([23,12,1,14,21,4,45,11])
On obtient : [1,4,11,12,14,21,23,45]

Documentation de giac écrite par Renée De Graeve