Шейкер-сортировка. Алгоритм «пузырьковой» сортировки легко улучшить. Разумно запомнить, производился ли на данном проходе

irinapak1985 irinapak1985    3   16.04.2019 23:00    1

Ответы
Artemmundryl Artemmundryl  16.04.2019 23:00
const
  nmax=100;
var
  a: array[1..nmax] of integer;
  n,i,l,r: Integer;
  tmp : integer;
  f,g: text;
begin
  assign(f,'C:\Files\input.txt');
  reset(f);
  n:=0;
  writeln('Исходный массив:');
  while not eof(f) do
  begin
    inc(n);
    read(f,tmp);
    a[n]:=tmp;
    write(a[n],' ');
  end;
  close(f);
  writeln;
  l:=2;
  r:=n;
  while l<=r do
  begin
    for i:=l to r do
    if a[i]<a[i-1] then
    begin
      tmp:=a[i];
      a[i]:=a[i-1];
      a[i-1]:=tmp;
    end;
    r:=r-1;
    for i:=r downto l do
    if a[i]<a[i-1] then
    begin
      tmp:=a[i];
      a[i]:=a[i-1];
      a[i-1]:=tmp;
    end;
    l:=l+1;
  end;
  assign(g,'C:\Files\output.txt');
  rewrite(g);
  writeln('Упорядоченный массив:');
  for i:=1 to n do
  begin
    write(a[i],' ');
    write(g,a[i],' ');
  end;
  close(g);
end.
ПОКАЗАТЬ ОТВЕТЫ
даниил740 даниил740  16.04.2019 23:00
алгоритм сортировки пузырьком

P:=True; {Перестановка есть}
K:=1; {Номер просмотра}
While P Do
Begin
    P:=false;
    For i:=1 To n-k Do
        If X[i] > X[i+1] Then
        Begin
            A:=X[i];
            X[i]:=X[i+1];
            X[i+1]:=A;
            P:=true;
        End;
    k:=k+1;
End;
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы