Добавил:
Hist
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программы c++ (сортировка, хэширование) / 1 / Sraight_Insertion
.pas {1. Сортировка прямым включением (необменная)}
Const
n=20;
Var
k,compr,ass: integer;
mass: array [0..n] of real; //mass[0] зарезервирован!
Procedure InitMass;
Var
i:integer;
Begin
for i:=1 to n do mass[i]:=100-i;//10*sin(0.3*i+0.24);
End;
Procedure St_In;
Var
i,j: integer;
x: real;
Begin
for i:=2 to n do begin
x:=mass[i];
ass:=ass+1;
mass[0]:=x;
ass:=ass+1;
j:=i;
compr:=compr+1;
while x<mass[j-1] do begin
mass[j]:=mass[j-1];
ass:=ass+1;
j:=j-1;
end;
mass[j]:=x;
ass:=ass+1;
end;
End;
BEGIN
InitMass;
for k:=1 to n do writeln(mass[k]:5:5);
WriteLn('***********************************************************');
compr:=0;
ass:=0;
St_In;
for k:=1 to n do writeln(mass[k]:5:5);
WriteLn('ass=',ass);
WriteLn('compr=',compr);
END.
Const
n=20;
Var
k,compr,ass: integer;
mass: array [0..n] of real; //mass[0] зарезервирован!
Procedure InitMass;
Var
i:integer;
Begin
for i:=1 to n do mass[i]:=100-i;//10*sin(0.3*i+0.24);
End;
Procedure St_In;
Var
i,j: integer;
x: real;
Begin
for i:=2 to n do begin
x:=mass[i];
ass:=ass+1;
mass[0]:=x;
ass:=ass+1;
j:=i;
compr:=compr+1;
while x<mass[j-1] do begin
mass[j]:=mass[j-1];
ass:=ass+1;
j:=j-1;
end;
mass[j]:=x;
ass:=ass+1;
end;
End;
BEGIN
InitMass;
for k:=1 to n do writeln(mass[k]:5:5);
WriteLn('***********************************************************');
compr:=0;
ass:=0;
St_In;
for k:=1 to n do writeln(mass[k]:5:5);
WriteLn('ass=',ass);
WriteLn('compr=',compr);
END.
Соседние файлы в папке 1