Bookmark and Share

Liens sponsorisés

Login Form



Le Tri par comptage Print E-mail
Written by Administrator   

  Cette méthode consiste a construire un vecteur d’indices ind, dans lequel on calcule la position que devrait avoir chaque élément pour que le vecteur soit trié:


PROCEDURE tri_comptage (     v : vec_t;
                             vn : integer;
                         var w : vec_t);
VAR i, k : integer;
    ind : array [1..VMax] of integer;
BEGIN
    { init }
    for i := 1 to vn do ind[i] := 1;
    { construit ind }
    for i := 1 to vn-1 do
      for k := i+1 to vn do
        if v[k] < v[i]
        then ind[i] := ind[i]+1
        else ind[k] := ind[k]+1;
    { construit w }
    for i := 1 to vn do w[ind[i]] := v[i];
END;

 

Le coût
   La place occupée est importante (3 vecteurs).
   Le nombre de comparaisons est constant (vn × (vn − 1)/2). C’est du même ordre que le tri par permutation ou a bulles non optimisé.  Il y a très peu d’affectations (vn) ; cela est très intéressant si les éléments de vn sont « lourds », par exemple des strings ou des records triés sur un champ.
                                                                                    

 

 

Liens sponsorisés