304
правки
Изменения
Нет описания правки
обменять местами элементы A[j] и A[j+1]
t := истина
== Пример работы алгоритма ==
Возьмём массив с числами «5 1 4 2 8» и отсортируем значения по возрастанию, используя сортировку пузырьком. Выделены те элементы, которые сравниваются на данном этапе.
'''Первый проход:'''
('''5 1''' 4 2 8) ('''1 5''' 4 2 8), Здесь алгоритм сравнивает два первых элемента и меняет их местами.
(1 '''5 4''' 2 8) (1 '''4 5''' 2 8), Меняет местами, так как 5 > 4
(1 4 '''5 2''' 8) (1 4 '''2 5''' 8), Меняет местами, так как 5 > 2
(1 4 2 '''5 8''') (1 4 2 '''5 8'''), Теперь, ввиду того, что элементы стоят на своих местах (8 > 5), алгоритм не меняет их местами.
'''Второй проход:'''
('''1 4''' 2 5 8) ('''1 4''' 2 5 8)
(1 '''4 2''' 5 8) (1 '''2 4''' 5 8), Меняет местами, так как 4 > 2
(1 2 '''4 5''' 8) (1 2 '''4 5''' 8)
(1 2 4 '''5 8''') (1 2 4 '''5 8''')
Теперь массив полностью отсортирован, но алгоритм не знает так ли это. Поэтому ему необходимо сделать полный проход и определить, что перестановок элементов не было.
'''Третий проход:'''
('''1 2''' 4 5 8) ('''1 2''' 4 5 8)
(1 '''2 4''' 5 8) (1 '''2 4''' 5 8)
(1 2 '''4 5''' 8) (1 2 '''4 5''' 8)
(1 2 4 '''5 8''') (1 2 4 '''5 8''')
Теперь массив отсортирован и алгоритм может быть завершён.