Другие языки программирования и технологии

Помогите пожалуйста! Рекурсия (Delphi).

procedure swap(var a, b: integer);
var
tmp: integer;
begin
if a <> b then begin tmp := a; a := b; b := tmp end;
end;

function imin(a: array of integer; bi, ei: integer): integer;
var
c, mc: integer;
begin
mc := bi;
for c := bi to ei do if a[mc] > a[c] then mc := c;
imin := mc;
end;

procedure rselsort(var a: array of integer; bi, ei: integer);
begin
if bi < ei then begin
swap(a[bi], a[imin(a, bi, ei)]);
rselsort(a, bi + 1, ei);
end;
end;

procedure sort(var a: array of integer; n: integer);
begin
rselsort(a, 0, n - 1);
end;

var
a: array [1..20] of integer;
c: integer;

begin
randomize;

write('random array:');
for c := 1 to 20 do begin
a[c] := random(100);
write(' ', a[c]);
end;
writeln;

sort(a, 20);

write('sorted array:');
for c := 1 to 20 do write(' ', a[c]);
end.
Х.
Хан ...
58 951
Лучший ответ
Выбираешь минимум из массива, переставляешь его на первое место.
Потом для остального массива выполняешь то же самое.

procedure sort(n:integer);
var i,min,k:integer;
begin
if n<>10 then begin
min:=n;
for i:=n+1 to 10 do
if a[ i] < a[min] then min:=i;
k:=a[min];
a[min]:=a[n];
a[n]:=k;
sort(n+1);
end else
for i:=1 to 10 do
write(a[ i],' ');
end;

В основной программе sort(1);
почитай книжки, или гугл спроси
и в дополнение выше сказанного - нужно чтобы процедура сама себя тупо вызывала и все