Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка прямым включением
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-Катя-
Вот процедура , которая сортирует массив прямым выбором и считает число сравнений и число перестановок, помогите плз сделать процедуру для метода прямого включения .
procedure vybor(a:tm);
begin
peres:=0;
srav:=0;


for i:= 1 to n-1 do
begin
k := i;
temp := a [i];
for j := i+1 to n do
begin
inc(srav);
if a [j] < temp then
begin
k := j;
temp := a [j];
end;
end;
a [k] := a [i];
if k <> i then inc(peres);
a [i] := temp;
end;
write('Sortirovka');
textcolor(red);
for i:=1 to n do

write(a[i],' ');
writeln;
textcolor(white);
writeln('Chislo perestanovok = ',peres);
writeln('Chislo sravneniy = ',srav);
readln;
end;


Тегами не забываем пользоваться...
мисс_граффити
если я правильно понимаю, метод прямого включения - то же, что и простые вставки?

const n=7;
type massiv=array [1..n] of integer;

procedure vstavka(var ar:massiv; n:integer);
var i, j, buf: integer;
begin
for i:=1 to n do
begin
buf:=ar[i];
j:=i-1;
while (buf<ar[j]) and (j>=0) do
begin
ar[j+1]:=ar[j];
j:=j-1;
end;
ar[j+1]:=buf;
end;
end;
-катя-
а как добавить сюда счетчик для сравнений идля перестановок ????
volvo
Здесь про это говорилось: Cчётчики

(то же самое - для любого другого метода...)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.