Алгоритм бульбашкового сортування починається з порівняння перших двох елементів масиву та їх заміни за необхідності. Наприклад, якщо ви хочете відсортувати елементи масиву в порядку зростання, а перший елемент більший за другий, вам потрібно поміняти місцями елементи. Якщо ж перший елемент менший за другий, ви не повинні міняти його місцями. Потім другий і третій елементи знову порівнюються і змінюються місцями, якщо це необхідно, і цей процес триває доти, доки останній та передостанній елементи не будуть порівняні та замінені. Це завершує перший крок бульбашкового сортування.
Якщо потрібно відсортувати 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, цей метод може застосовуватись у будь-якому програмуванні для сортування елементів масиву.
Алгоритм бульбашкового сортування досить популярний, але є багато інших кращих алгоритмів, ніж бульбашкове сортування.
Увага! Пухирцеве сортування не повинно використовуватися для сортування великих даних, якщо продуктивність цієї програми має значення.