Voici un algo de tri par selection.
Il tris des chaines (string) en fonction du combre de caracteres.
La chaines la plus longue sera la premiere, et la plus courte la derniere.
Procedure TrierLesChaines(Strings :TSTrings);
var Taille, index, i, j, c :integer;
tmp :string;
Tablo :array of string;
begin
index := 0;
c := Strings.Count;
SetLength(Tablo, c); // on met la taille du tableau au nombre de chaines
for i := 0 to c - 1 do Tablo[i] := Strings.Strings[i];
j := 0;
repeat
Taille := 0;
for i := j to c - 1 do
begin
if length(tablo[i]) > taille then
begin
index := i;
taille := length(tablo[i]);
end;
end;
tmp := Tablo[j];
Tablo[j] := Tablo[index];
Tablo[index] := tmp;
inc(j);
until j = c;
for i := 0 to c - 1 do Strings.Strings[i] := Tablo[i];
end;
|