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.
Другие языки программирования и технологии
Помогите пожалуйста! Рекурсия (Delphi).
Выбираешь минимум из массива, переставляешь его на первое место.
Потом для остального массива выполняешь то же самое.
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);
Потом для остального массива выполняешь то же самое.
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);
почитай книжки, или гугл спроси
и в дополнение выше сказанного - нужно чтобы процедура сама себя тупо вызывала и все
Похожие вопросы
- Помогите пожалуйста в Delphi написать программу
- помогите пожалуйста, Delphi
- Delphi ПОМОГИТЕ ПОЖАЛУЙСТА!
- Помогите найти ошибку Delphi легкая программка
- Вопрос по delphi, помогите пожалуйста.
- Помогите пожалуйста с задачей в delphi !
- помогите пожалуйста составить программу на Delphi/
- Помогите пожалуйста с программой на DELPHI
- помогите пожалуйста решить задачу по Delphi
- Помогите пожалуйста решить задачу в Turbo Delphi.