Структуры и алгоритмы обработки данных


         

осуществляющая сортировку методом прямого включения


    k1:=k1+1;
    if a[j - 1] < a[j] then
      begin
        k:=k+1;
  {обмена содержимым элементов массива a[j-1] и a[j]
   с помощью переменной x}
        x := a[j - 1];
        a[j - 1] := a[j];
        a[j] := x;
      end;
    end;
 end;
 for i:=1 to high(a) do
  a1[i]:=a[i];
end;
{*********************************************************}
{*** процедура, осуществляющая сортировку методом прямого включения **}
{*********************************************************}
procedure pr_ins(a:array of integer;var a1:array of integer;var k,k1:longint);
var
{i,j - счетчики в циклах}
 i,j:integer;
{x - переменная для осуществления обмена между a[i] и a[j]}
 x:integer;
begin
{k1 -  переменная для подсчета количества сравнений
 k  -  переменная для подсчета количества перемещений}
k:=0;k1:=0;
for i := 1 to high(a) do
  begin
    x := a[i];
    for j := i - 1 downto 0 do
     begin
      k1:=k1+1;
      if x > a[j] then
                    begin
                     k:=k+1;
  {обмена содержимым элементов массива a[j+1] и a[j]
   с помощью переменной x}
                     a[j + 1] := a[j];
                     a[j]:=x;
                    end;
     end;
  end;
  for i:=0 to high(a) do
   a1[i]:=a[i];
end;
{**********************************************************
        процедура, осуществляющая исследование методов сортировок  для
 ***********  заданного массива чисел  ***********************
**********************************************************}
procedure make(x1,n:integer;a,a1:array of integer;k:byte);
var
{количество перестановок}
 kol_pr_ins, kol_pr_obm,kol_pr_choose:longint;
{количество сравнений}
 kol_sr_ins, kol_sr_obm,kol_sr_choose:longint;
  s:string;
begin
case k of
1:s:='упорядоченных по возрастанию';
2:s:='неупорядоченных (случайных)';
3:s:='упорядоченных по убыванию';
end;
{--------метод прямого включения---------}
pr_ins(a,a1,kol_pr_ins,kol_sr_ins);
{--------метод прямого обмена (метод пузырька)--------}

Содержание  Назад  Вперед