В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением – к концу массива (тонут), поэтому этот метод иногда называют методом «пузырька». Это процесс повторяется на единицу меньше раз, чем элементов в массиве.
Пример алгоритма (рисунок) и программы сортировки массива целых чисел по возрастанию методом «пузырька».
program Primer;
const n=5; {описание константы}
Var
a: array [1..n] of integer; {объявление массива}
i,buf,k:integer;
Begin
writeln(‘введите значения элементов массива’);
for i:=1 to n do readln(a[i]); {заполнение одномерного массива}
for i:=1 to n-1 do {сортировка}
Begin
for k:=1 to n-1 do
Begin
if a[k]>a[k+1] then
Begin
buf:=a[k];
a[k]:=a[k+1];
a[k+1]:=buf;
end;
end;
end;
for k:=1 to n do write(a[k],’ ‘);
readln;
end.
Рисунок И.2 – Блок-схема программы сортирования элементов массива по возрастанию методом “пузырька”