Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок. (pascal)

Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок. (pascal)
Гость
Ответ(ы) на вопрос:
Гость
const   n = 10; var   a: array[1..n] of integer;   i, j, t: integer;   flag:boolean;   begin   Randomize;   Writeln('Исходный массив');   for i := 1 to n do   begin     a[i] := random(101)-50;     Write(a[i]:4)   end;   Writeln;   i:=1;   repeat     flag:=true;     for j := 1 to n-i do       if a[j] > a[j+1] then       begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;     Inc(i);   until (i>n-1) or flag;   Writeln('Отсортированный по возрастанию массив');   for i := 1 to n do Write(a[i]:4);   Writeln end. Тестовое решение: Исходный массив  -32  -7   2   2  50 -33   1  31   4 -16 Отсортированный по возрастанию массив  -33 -32 -16  -7   1   2   2   4  31  50
Не нашли ответ?
Ответить на вопрос
Похожие вопросы