Шейкер-сортировка. Метод пузырьковой сортировки легко сделать лучше. Мудро уяснить, выполнялся ли на
Шейкер-сортировка. Метод пузырьковой сортировки легко сделать лучше. Разумно уяснить, выполнялся ли на данном проходе какой-либо размен. Если нет, то метод можно окончить. Еще одно улучшение заключается в том, что временами изменяется направление сортировки, которое борется с некой асимметрией пузырькового способа. Написать программку, реализующую данный усовершенствованный метод.
Задать свой вопрос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.
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;
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;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл
Химия.
Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы
Русский язык.
Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника
Геометрия.
Вычислите силу с которой при давлении 100 КПа атмосфера давит на
Физика.
Синтаксический разбор и схема Но мы сказали, что нам ничего не
Русский язык.
Массовая доля целлюлозы в древесине составляет 50%. Какая масса спирта может
Химия.
помоги мне пожалуста прш
869*(61124-488*125)-50974
Математика.
по шкале высот определить ,в каком направлении происходит понижение релефа уральских гор
География.
Помогите пожалуйста написать Сочинение Овчинникова "победитель'
Литература.
Здравствуйте. Нужен цитатный план испытания лётчика в лесу главы2-13 по повести
Разные вопросы.
Облако тегов