Pascal. Задача 8-20
Отсортировать массив целых чисел, введенных пользователем, методом "пузырька".
Алгоритм метода "пузырька" заключается в следующем: циклически просматриваются элементы массива, начиная с первого. Если текущий элемент больше следующего, то они меняются местами. В результате одного прохода наибольший элемент оказывается на последнем месте. Во втором проходе элементы просматриваются и сравниваются заново, за исключением последнего, который уже стоит на своем месте. После всех проходов или если за проход не было сделано ни одной перестановки, массив отсортирован.
Решение
const
N = 10;
var
i, j, tmp : integer;
a : array[1..N] of integer;
flag : boolean;
begin
for i := 1 to N do begin
Write('Введите элемент массива ', i, ': ');
Readln(a[i]);
end;
for i := 1 to N - 1 do begin
flag := true;
for j := 1 to N - i do begin
if a[j] > a[j + 1] then begin
tmp := a[j];
a[j] := a[j + 1];
a[j + 1] := tmp;
flag := false;
end;
end;
if flag then break;
end;
for i := 1 to N do Write(a[i], ' ');
Writeln();
end.