Алгоритм бульбашкового сортування починається з порівняння перших двох елементів масиву та їх заміни за необхідності. Наприклад, якщо ви хочете відсортувати елементи масиву в порядку зростання, а перший елемент більший за другий, вам потрібно поміняти місцями елементи. Якщо ж перший елемент менший за другий, ви не повинні міняти його місцями. Потім другий і третій елементи знову порівнюються і змінюються місцями, якщо це необхідно, і цей процес триває доти, доки останній та передостанній елементи не будуть порівняні та замінені. Це завершує перший крок бульбашкового сортування.
Якщо потрібно відсортувати n елементів, процес, згаданий вище, слід повторити n-1 раз, щоб отримати необхідний результат. Але для кращої продуктивності на другому етапі останні та передостанні елементи не порівнюються, тому що відповідний елемент автоматично міститься в кінці після першого кроку. Аналогічно, на третьому етапі останні та передостанні та передпередостанні елементи не порівнюються і так далі.
Для кращого розуміння подивимося малюнок.
На малюнку представлено 5 елементів для сортування та 4 кроки.
Програма для сортування елементів з використанням алгоритму бульбашкового сортування
// Программа для сортировки данных в порядке возрастания с использованием пузырьковой сортировки. #include <stdio.h> int main() { int data[100],i,n,step,temp; printf("Enter the number of elements to be sorted: "); scanf("%d",&n); for(i=0;i<n;++i) { printf("%d. Enter element: ",i+1); scanf("%d",&data[i]); } for(step=0;step<n-1;++step) for(i=0;i<n-step-1;++i) { if(data[i]>data[i+1]) // Чтобы отсортировать в порядке убывания, измените > на < в этой строке. { temp=data[i]; data[i]=data[i+1]; data[i+1]=temp; } } printf("In ascending order: "); for(i=0;i<n;++i) printf("%d ",data[i]); return 0; }
Enter number of terms(should be less than 100): 5 Enter elements: 12 1 2 5 3 In ascending order: 1 2 3 5 12
Примітка: хоча цей код використовується у програмуванні на C, цей метод може застосовуватись у будь-якому програмуванні для сортування елементів масиву.
Алгоритм бульбашкового сортування досить популярний, але є багато інших кращих алгоритмів, ніж бульбашкове сортування.
Увага! Пухирцеве сортування не повинно використовуватися для сортування великих даних, якщо продуктивність цієї програми має значення.