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

Tri par recherche du minimum

On utilise une liste Lrep pour mettre la liste triée. On parcourt la liste L pour chercher l'indice jm du plus petit élément m, puis on le met dans la liste Lrep et et on enlève cet élément de L on enlève cet élément de L Puis on refait la même chose avec la liste privée de son premier élément etc..
On va utiliser mid(L,j,k) qui renvoie la sous liste de L de longueur k qui commence à l'indice j ou mid(S,j) qui renvoie la liste fin de L commençant à l'indice j .
Remarque À la place de mid(L,j,k) on peut aussi utiliser L[j..j+k-1] (on met les indices de début et de fin de la sous liste) et à la place de mid(L,j) on peut aussi utiliser L[j..dim(L)-1].
TrierLr(L):={
  local j,k,m,jm,d,Lrep;
  d:=dim(L)-1;
  Lrep:=[];
  pour j de 0 jusque d faire 
    m,jm:=MiniL(L);
    Lrep:=append(Lrep,m);
    L:=concat(mid(L,0,jm),mid(L,jm+1));
  fpour
 retourne Lrep;
}:;
On utilise la même liste L pour mettre la liste triée. On parcourt la liste L pour chercher l'indice jm du plus petit élément m, puis on l'échange avec le premier élémment de L. Puis on refait la même chose avec la liste privée de son premier élément etc...C'est le tri par recherche du minimum.
TrierL(L):={
  local j,k,m,jm,d;
  d:=dim(L)-1;
  pour k de 0 jusque d-1 faire
    jm:=k;
    m:=L[k];
    pour j de k+1 jusque d faire
      si m>L[j] alors m:=L[j];jm:=j; fsi;
    fpour;
  L[jm]:=L[k];
  L[k]:=m;
  fpour
 retourne L;
}:;
On tape :
TrierLr([23,12,1,14,21,4,45,11])
Ou on tape :
TrierL([23,12,1,14,21,4,45,11])
On obtient : [1,4,11,12,14,21,23,45]

next up previous contents index
suivant: Tri par insertion monter: Ordonner une séquence de précédent: Ordonner une séquence de   Table des matières   Index
Documentation de giac écrite par Renée De Graeve