Сортировка методом пузырька.

Один из самых популярных методов сортировки – ″пузырьковый″ метод основан на том, что в процессе исполнения алгоритма более ″легкие″ элементы массива постепенно ″всплывают″. Особенности данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по убыванию состоит в последовательных просмотрах снизу вверх (от начала к концу) массива М. Если соседние элементы таковы, что выполняется условие, согласно которому элемент справа больше элемента слева, то выполняется обмен значениями этих элементов.

Текст программы сортировки массива по невозрастанию можно записать в таком варианте:

program Sort_Puz; (Сортировка массива ″пузырьковым″ методом по невозрастанию}

const

Count=20;

M: array [1.. Count] of

byte=(9, 11, 12, 3, 19, 1, 5, 17, 10, 18, 3, 19, 17, 9, 12, 20, 20, 19, 2, 5);

var I, J, N, L: Byte;

A:integer;

begin

Writeln(′Исходный массив:′);

for I:=1 to Count do Write (M [I]′,’);

Writeln;

A:=0;

for I:=2 to Count do(Сортировка ″пузырьковым″ методом по невозрастанию}

begin

for J:= Count downto Ido

begin

A:=A+1;

if M[J-1]<M[J] then {Если элемент справа больше элемента слева, то ″вытеснить″ его влево - пузырек ″всплывает″}

begin

K: = M [J-1]; {Обмен значениями этих элементов}

M [J-1]: = M [J];

M [J]: = K;

{Печатать текущее состояние массива после каждой перестановки}

for L:=1 to Count do Write (Writein (′Число итераций=′,А);

end;

end;

end;{Завершение сортировки}

end.