ПУЗЫРЬКОВАЯ СОРТИРОВКА
Метод пузырьковой сортировки последовательности a1, a2, …, an представляет собой систематический обмен местами слева направо смежных элементов, не отвечающих выбранному порядку, до тех пор, пока они не оказываются на правильном месте. Большие элементы при этом как бы «всплывают пузырьками вверх» в конец списка. В приведённом ниже алгоритме используется переменная b, значение которой содержит число ещё не отсортированных элементов
//---------------------------------------
b=n;
while (b!=0)
{
t=0;
for(j=1;j
{
if (a[j]>a[j+1]) {w=a[j]; a[j]=a[j+1]; a[j+1]=w; t=j;};
}
b=t;
}
//--------------------------------------------
Сложность данного алгоритма определяется числом проверок условия a[j]>a[j+1] в цикле и является квадратичной O(n2). Число реально проделанных сравнений существенно зависит от первоначального расположения элементов массива.
Рассмотренный ниже другой алгоритм так называемой «полной» пузырьковой сортировки является наиболее популярным и легко программируемым её вариантом.
//-----------------------------------
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i; j++)
{
if (a[j]>a[j+1]) {w=a[j];a[j]=a[j+1];a[j+1]=w;};
}
}
//-------------------------------------
Сложность приведённого алгоритма определяется числом сравнений a[j]>a[j+1]. Она остаётся постоянно равной n(n-1)/2 (то есть квадратичной) и не зависит от расположения исходных данных.
ЗАКЛЮЧЕНИЕ
Основываясь на результатах среднего числа сравнений можно сделать вывод, что сортировка вставками эффективнее пузырьковой сортировки. Это видно и из графика приведенного ниже:

СПИСОК ЛИТЕРАТУРЫ
-
Лекции по курсу «Алгоритмизация и программирование. Структуры и алгоритмы компьютерной обработки данных».
-
Б.Н. Иванов Дискретная математика. Алгоритмы и программы: Учеб. пособие. – Владивосток: Изд-во ДВГТУ, 2000.