Para un array de enteros puedes usar algo así:
Código Delphi
[-]
procedure TBubbleSort.Sort(var A: array of Integer);
var
I, J, T: Integer;
begin
for I := High(A) downto Low(A) do
for J := Low(A) to High(A) - 1 do
if A[J] > A[J + 1] then
begin
VisualSwap(A[J], A[J + 1], J, J + 1);
T := A[J];
A[J] := A[J + 1];
A[J + 1] := T;
if Terminated then Exit;
end;
end;
Para un TStringList:
Código Delphi
[-]
function BubbleSort( list: TStringList ): TStringList;
var
i, j: Integer;
temp: string;
begin
for i := 0 to list.Count - 1 do begin
for j := 0 to ( list.Count - 1 ) - i do begin
if ( j + 1 = list.Count ) then
continue;
if ( list.Strings[j] > list.Strings[j+1] ) then begin
temp := list.Strings[j];
list.Strings[j] := list.Strings[j+1];
list.Strings[j+1] := temp;
end; end; end; Result := list;
end;
Si buscas en los foros, también encontrarás links muy interesantes (
link,
link,
link)
Si deseas versiones alternativas, seguro que por internet
encuentras muchas más.