Le tri comptage ou tri par casiers

Algorithmique > Algorithmes de tri > Tri comptage [ Réagir ]

Complexité en temps

Le tri comptage a une complexité en temps linéaire donc de la forme Ω(n).

Conditions

Pour utiliser le tri comptage, il est nécessaire que les données à trier soient des entiers naturels qui appartiennent à un intervalle relativement restreint. En effet, ce type de tri nécessite l'utilisation d'un tableau ayant pour taille le nombre d'entiers de cette intervalle.

Code (Pascal)

procedure CountingSort(var A: Array of Integer; MinimumValue,MaximumValue: Integer);
var I,Index: Integer;
    C: Array of Integer;
begin

  SetLength(C,MaximumValue-MinimumValue+1);
  For I:= 0 to Length(C)-1 do C[I]:=0;
  For I:= 0 to Length(A) do
    Inc(C[A[I]-MinimumValue]);
  Index:=0;
  For I:= 0 to Length(C)-1 do
    For J:= 1 to C[I] do
      begin
        A[Index]:=I+MinimumValue;
        Inc(Index);
      end;
  Finalize(C);

end;
Le code ci-dessus trie le tableau Α passé en paramètre ; tableau d'entiers, compris entre MinimumValue et MaximumValue. Après l'exécution de la procédure, le tableau Α est trié dans l'ordre croissant.