Не надо ничего менять в сортировке - она и так работает, будет хуже (испытывал предложенные модернизации - начинаются ошибки:-). Вот ещё вариант обёртки:
Код:
procedure SortArr(var X: array of integer);
var i, j, m: integer;
begin
for i:= Low(X) to High(X) do
for j:= Low(X) to High(X) do
if X[j] > X[j+1] then
begin
M:= X[j];
X[j]:= X[j+1];
X[j+1]:= M;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var A:array[0..4] of integer;
i: integer;
begin
memo1.Clear;
A[0]:=5;
A[1]:=3;
A[2]:=4;
A[3]:=1;
A[4]:=2;
SortArr(A); //можно любой массив передавать
for i:=0 to High(A) do Memo1.Lines.Add(IntToStr(A[i]));
end;