Шейкер-сортировка. Алгоритм «пузырьковой» сортировки легко улучшить. Разумно запомнить, производился ли на данном проходе какой-либо обмен. Если нет, то алгоритм можно закончить. Еще одно улучшение заключается в том, что периодически меняется направление сортировки, которое борется с некоторой асимметрией «пузырькового» метода. Написать программу, реализующую данный улучшенный алгоритм.
спросил 18 Дек, 18 от cevka в категории школьный раздел


решение вопроса

+7
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.
ответил 18 Дек, 18 от Olenka
+7
алгоритм сортировки пузырьком

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;
ответил 18 Дек, 18 от cevka

Связанных вопросов не найдено

Обучайтесь и развивайтесь всесторонне вместе с нами, делитесь знаниями и накопленным опытом, расширяйте границы знаний и ваших умений.

Популярное на сайте:

Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах. 

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте. 

Как быстро и эффективно исправить почерк?  Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

Как научится говорить грамотно и правильно? Общение на хорошем, уверенном и естественном русском языке является достижимой целью.