Lila25mila
25 лютого 2019 р. 14:29

Алгоритм пухирцевого сортування

Алгоритм бульбашкового сортування починається з порівняння перших двох елементів масиву та їх заміни за необхідності. Наприклад, якщо ви хочете відсортувати елементи масиву в порядку зростання, а перший елемент більший за другий, вам потрібно поміняти місцями елементи. Якщо ж перший елемент менший за другий, ви не повинні міняти його місцями. Потім другий і третій елементи знову порівнюються і змінюються місцями, якщо це необхідно, і цей процес триває доти, доки останній та передостанній елементи не будуть порівняні та замінені. Це завершує перший крок бульбашкового сортування.


Якщо потрібно відсортувати n елементів, процес, згаданий вище, слід повторити n-1 раз, щоб отримати необхідний результат. Але для кращої продуктивності на другому етапі останні та передостанні елементи не порівнюються, тому що відповідний елемент автоматично міститься в кінці після першого кроку. Аналогічно, на третьому етапі останні та передостанні та передпередостанні елементи не порівнюються і так далі.

Для кращого розуміння подивимося малюнок.

На малюнку представлено 5 елементів для сортування та 4 кроки.

Програма для сортування елементів з використанням алгоритму бульбашкового сортування
  1. // Программа для сортировки данных в порядке возрастания с использованием пузырьковой сортировки.
  2. #include <stdio.h>
  3. int main()
  4. {
  5. int data[100],i,n,step,temp;
  6. printf("Enter the number of elements to be sorted: ");
  7. scanf("%d",&n);
  8. for(i=0;i<n;++i)
  9. {
  10. printf("%d. Enter element: ",i+1);
  11. scanf("%d",&data[i]);
  12. }
  13.  
  14. for(step=0;step<n-1;++step)
  15. for(i=0;i<n-step-1;++i)
  16. {
  17. if(data[i]>data[i+1]) // Чтобы отсортировать в порядке убывания, измените > на < в этой строке.
  18. {
  19. temp=data[i];
  20. data[i]=data[i+1];
  21. data[i+1]=temp;
  22. }
  23. }
  24. printf("In ascending order: ");
  25. for(i=0;i<n;++i)
  26. printf("%d ",data[i]);
  27. return 0;
  28. }
  1. Enter number of terms(should be less than 100): 5
  2. Enter elements: 12
  3. 1
  4. 2
  5. 5
  6. 3
  7. In ascending order: 1 2 3 5 12

Примітка: хоча цей код використовується у програмуванні на C, цей метод може застосовуватись у будь-якому програмуванні для сортування елементів масиву.
Алгоритм бульбашкового сортування досить популярний, але є багато інших кращих алгоритмів, ніж бульбашкове сортування.

Увага! Пухирцеве сортування не повинно використовуватися для сортування великих даних, якщо продуктивність цієї програми має значення.

По статті запитували0питання

2

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • Evgenii Legotckoi
    16 квітня 2025 р. 17:08
    Благодарю за отзыв. И вам желаю всяческих успехов!
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…