Быстрый метод сортировки(Делфи)
Здравствуйте. Помогите пожалуйста с нелепой проблемой. Имеется рабочий код быстрой сортировки массива. Программа должна выводить все иттерации. т.е. перестановки элементов по возрастанию. Но она выводит только конечный результат. Код взят из книги.
Здравствуйте. Помогите пожалуйста с нелепой проблемой. Имеется рабочий код быстрой сортировки массива. Программа должна выводить все иттерации. т.е. перестановки элементов по возрастанию. Но она выводит только конечный результат. Код взят из книги.
Код:
Program gutic_sort;
const n=500;
var arr : array [1..n] of real;
middle : real;
temp : real;
sp : integer;
i,j : integer;
f : text;
stackl, stackr : array [1..n] of integer;
left, right : integer;
begin
assign(f, 'D:\pascal\input.txt'); reset(f);
for i:=1 to n do read(f, arr[i]);
sp :=1; stackl[1]:=1; stackr[1]:=n;
while sp>0 do begin
left:=stackl[sp];
right:=stckr[sp];
dec(sp);
while left< right do begin
i:= left; j:=right;
middle:=arr[(left+right) div 2];
while i<j do begin
while arr[i]< middle do inc(i);
while middle< arr[j] do dec(j);
if i<= j then begin
temp:=arr[i]; arr[i]:=arr[j]; arr[j]:= temp:
inc(i): dec(j);
end;
end;
if i< right then begin
inc(sp);
stackl[sp]:=i;
stackr[sp]:= right;
end;
right:=j;
end;
end;
writeln;
for i:=1 to n do write(arr[i]:8:2);
writeln;
end.