@sasha_zaitsev

Как изменить метод пузырька?

Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок.
В чем ошибка?
const n=10;
type s = array[1..n] of integer;
var mas: s;
var i,j,t,k: integer;
begin
for i:=1 to n do mas[i]:=random(2);
for i:=1 to n do write(mas[i],' ');
writeln();
k:=0;
for i:=1 to n-1 do
   begin
   for j:=n-1 downto i do
    if mas[j+1]<mas[j] then
      begin
      t:=mas[j+1];
      mas[j+1]:=mas[j];
      mas[j]:=t;
      k:=k+1;
      end;
   if k=0 then break;
   k:=0;
   end;
for i:=1 to n do write(mas[i],' ');
end.
  • Вопрос задан
  • 1702 просмотра
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs
C++ developer
10 элемент никогда не будет проверен с соседом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы