Шейкер-сортировка. Метод пузырьковой сортировки легко сделать лучше. Мудро уяснить, выполнялся ли на

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

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

P:=True; Перестановка есть
K:=1; Номер просмотра
While P Do
Begin
nbsp;nbsp;nbsp;nbsp;P:=false;
nbsp;nbsp;nbsp;nbsp;For i:=1 To n-k Do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;If X[i] gt; X[i+1] Then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;A:=X[i];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;X[i]:=X[i+1];
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;X[i+1]:=A;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;P:=true;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;End;
nbsp;nbsp;nbsp;nbsp;k:=k+1;
End;
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт