Последовательный алгоритм сортировки “пузырьком ”состоит в
повторяющихся проходах по сортируемому массиву. За каждый проход элементы
последовательно сравниваются попарно и, если порядок в паре неверный,
выполняется обмен элементов. В ходе алгоритма поочередно выполняются N итераций.
Проходы по массиву повторяются до тех пор, пока на очередном проходе не
окажется, что обмены больше не нужны, что означает — массив отсортирован. При
проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной
позиции как пузырёк в воде, отсюда и название алгоритма.
Алгоритм пузырьковой сортировки в прямом виде достаточно
сложен для распараллеливания – сравнение происходит строго последовательно. В
связи с этим для параллельного применения используется модификация данного
алгоритма - чет-нечетной перестановки. Суть модификации состоит в том, что в
алгоритм сортировки вводятся два разных правила выполнения итераций метода: в
зависимости от четности или нечетности номера итерации сортировки для обработки
выбираются элементы с четными или нечетными индексами соответственно, сравнение
выделяемых значений всегда осуществляется с их правыми соседними элементами.
Таким образом, на всех нечетных итерациях сравниваются пары
(a1, a2), (a3, a4), ..., (an-1,an) (при четном n),
а на четных итерациях обрабатываются элементы
(a2, a3), (a4, a5), ..., (an-2,an-1).
После n-кратного повторения итераций сортировки исходный
набор данных оказывается упорядоченным.