Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка прямым включением
Форум «Всё о Паскале» > 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чётчики

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