TYPE mas = array [1..100,1..100] of integer;
VAR
I,N, M, J : Integer;
a:mas;
Procedure Sort( var a : mas; N, M:Integer);
Var
d, i, t : integer;
k : boolean;
begin
d:=N div 2;
while d>0 do
begin
k:=true;
while k do
begin
k:=false;
for I:=1 to M do
for J:=1 to N-d do
begin
if a[I,J] > a[I,J+d] then
begin
t:=a[I,J]; a[I,J]:=a[I,J+d]; a[I,J+d]:=t;
k:=true;
end;
end;
end;
d:=d div 2;
end;
end;
Begin
write ('введите количество строк ');
read (M);
write ('введите количество столбцов ');
read (N);
For I:=1 to M do
For J:=1 to N do
begin
write ('введите a[',I,',',J,']= ');
read (a[I,J]);
end;
Sort(a,N,M);
For I:=1 to M do
For J:=1 to N do
writeln (a[I,J]);
END.
Кстати по идее если почитать литературу, то тут сортировка тоже не совсем корректная в плане шага. Так как мне изменить шаг, чтобы он был как у Хиббарда?
Сообщение отредактировано: Renbo -