{************************PROGRAMM*****************************}
BEGIN
writeln('Введите размерность массива•');
readln(mas);
writeln('Введите массив ');
for i:=1 to mas do readln(k[i]);
{*********** Упорядочивание массива K ****************************}
kolb:=0; srb:=0;
t:=round(ln(mas)/ln(2))+1;
p:=round(exp((t)*ln(2)));
d:=p;
repeat
r:=0;q:=round(exp((t)*ln(2)));d:=p;
while q>=p do begin
for im:=0 to mas-d-1 do begin;
if mult(im,p)=perevod(r) then
srb:=srb+1;
if k[im+1]>k[im+1+d] then begin
z:=k[im+1]; kolb:=kolb+1;
k[im+1]:=k[im+1+d];
k[im+1+d]:=z;
end;
end;
writeln(p,d,q,r);
d:=q-p;q:=q div 2;r:=p;
end;
p:=p div 2;
UNTIL (p<1);
writeln('Упорядоченный массив ');
for i:=1 to mas do write(k[i] :10:1);
writeln;
writeln('Количество перестановок Бэтчером: m=',kolb);
writeln('Количество сравнений Бэтчером: c=',srb);
readln;
END.