bubble sort c with examples
Техніка сортування міхурів на C ++.
Сортування за бульбашками - найпростіший із методів сортування.
У техніці сортування міхурів кожен із елементів у списку порівнюється із сусіднім елементом. Отже, якщо в списку A є n елементів, тоді A (0) порівнюється з A (1), A (1) порівнюється з A (2) тощо.
Після порівняння, якщо перший елемент більший за другий, два елементи поміняються місцями.
=> Відвідайте тут, щоб переглянути повний курс експертів на C ++.
Що ви дізнаєтесь:
Як відкрити файл MKV у Windows - -
- Техніка сортування міхурів
- Ілюстрація
- Приклад С ++
- Приклад Java
- Аналіз складності алгоритму сортування міхурів
- Висновок
- Рекомендована література
Техніка сортування міхурів
Використовуючи техніку сортування бульбашок, сортування проводиться у проходи або ітерацію. Таким чином, в кінці кожної ітерації найважчий елемент розміщується на відповідному місці у списку. Іншими словами, найбільший елемент у списку з’являється вгору.
Нижче ми навели загальний алгоритм техніки сортування бульбашок.
Загальний алгоритм
Крок 1 : Для i = від 0 до N-1 повторіть крок 2
Крок 2 : Для J = i + 1 до N - повторюю
Крок 3 : якщо A (J)> A (i)
Поміняти місцями A (J) та A (i)
(Кінець внутрішнього циклу для циклу)
(Завершити, якщо зовнішній цикл)
Крок 4 : Вихід
Ось псевдокод для алгоритму сортування бульбашок, де ми переходимо по списку, використовуючи два ітераційні цикли.
У першому циклі ми починаємо з 0гоелемента, а в наступному циклі ми починаємо з сусіднього елемента. У внутрішньому тілі петлі ми порівнюємо кожен із сусідніх елементів і міняємо місцями, якщо вони не в порядку. В кінці кожної ітерації зовнішньої петлі найважчий елемент бульбашить в кінці.
Псевдокод
Procedure bubble_sort (array , N) array – list of items to be sorted N – size of array begin swapped = false repeat for I = 1 to N-1 if array(i-1) > array(i) then swap array(i-1) and array(i) swapped = true end if end for until not swapped end procedure
Наведене вище є псевдокодом для техніки сортування міхурів. Давайте тепер проілюструємо цю техніку, використовуючи докладну ілюстрацію.
Ілюстрація
Беремо масив розміром 5 і ілюструємо алгоритм сортування бульбашок.
Масив повністю відсортований.
Наведену вище ілюстрацію можна узагальнити у табличній формі, як показано нижче:
Пройти | Несортований список | порівняння | Відсортований список |
---|---|---|---|
{5,0,10,12,15} | {10.12} | {5,0,10,12,15} | |
1 | {10,5,15,0,12} | {10,5} | {5,10,15,0,12} |
{5,10,15,0,12} | {10.15} | {5,10,15,0,12} | |
{5,10,15,0,12} | {15,0} | {5,10,0,15,12} | |
{5,10,0,15,12} | {15.12} | {5,10,0,12,15} | |
два | {5,10,0,12,15} | {5,10} | {5,10,0,12,15} |
{5,10,0,12,15} | {10,0} | {5,0,10,12,15} | |
3 | {5,0,10,12,15} | {5,0} | {0,5,10,12,15} |
{5,0,10,12,15} | {5,10} | {5,0,10,12,15} | |
{5,0,10,12,15} | СОРТОВАНО |
Як показано на ілюстрації, при кожному проході найбільший елемент бульбашить до останнього, тим самим сортуючи список із кожним проходом. Як згадувалося у вступі, кожен елемент порівнюється із сусіднім елементом і міняється місцями між собою, якщо вони не в порядку.
Таким чином, як показано на ілюстрації вище, в кінці першого проходу, якщо масив потрібно сортувати за зростанням, найбільший елемент розміщується в кінці списку. При другому проході другий за величиною елемент розміщується на другій останній позиції у списку тощо.
Коли ми досягнемо пропуску N-1 (де N - загальна кількість елементів у списку), ми отримаємо сортування всього списку.
як читати файл
Техніка сортування міхурів може бути реалізована на будь-якій мові програмування. Ми застосували алгоритм сортування бульбашок, використовуючи C ++ та мову Java нижче.
Приклад С ++
Побачимо приклад програмування, щоб продемонструвати сортування міхурів.
#include using namespace std; int main () { int i, j,temp,pass=0; int a(10) = {10,2,0,14,43,25,18,1,5,45}; cout <<'Input list ...
'; for(i = 0; i<10; i++) { cout < Вихід:
Список введення…
10 2 0 14 43 25 18 1 5 45
Відсортований список елементів ...
0 1 2 5 10 14 18 25 43 45
Кількість проходів для сортування списку: 10
Приклад Java
class Main { public static void main(String() args) { int pass = 0; int() a = {10,-2,0,14,43,25,18,1,5,45}; System.out.println('Input List...'); for(int i=0;i<10;i++) { System.out.print(a(i) + ' '); } for(int i=0;i<10;i++) { for (int j=0;j<10;j++) { if(a(i) Вихід:

В обох програмах ми використали масив із 10 елементів і сортуємо його за допомогою техніки сортування за допомогою міхура. В обох програмах ми використовували два цикли for для ітерації сусідніх елементів масиву.
Наприкінці кожного проходу (зовнішній цикл) найбільший елемент масиву переходить до кінця масиву. Ми також підраховуємо кількість проходів, необхідних для сортування всього масиву.
список посилань в C ++
Аналіз складності алгоритму сортування міхурів
З псевдокоду та ілюстрації, яку ми бачили вище, у сортуванні за допомогою бульбашок ми робимо порівняння N-1 у першому проході, порівняння N-2 у другому проході тощо.
Отже, загальна кількість порівнянь у сортуванні бульбашок є:
I = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (nдва) => Складність у часі техніки сортування міхурів
Таким чином, різні складності техніки сортування бульбашок наведені нижче:
Найгірша складність часу O (n 2) Найкраща складність часу O (n) Середня часова складність O (n 2) Складність простору O (1)
Техніка сортування бульбашок вимагає лише одного додаткового місця в пам'яті для змінної temp, щоб полегшити обмін. Отже, просторова складність алгоритму сортування міхурів дорівнює O (1).
Зверніть увагу, що найкраща складність часу для техніки сортування бульбашок буде тоді, коли список вже відсортований, і це буде O (n).
Висновок
Головною перевагою Bubble Sort є простота алгоритму. При сортуванні за допомогою міхура при кожному проходженні найбільший елемент з’являється до кінця списку, якщо масив відсортований за зростанням.
Так само для списку, який потрібно сортувати за спаданням, найменший елемент буде знаходитись у відповідному місці в кінці кожного проходу.
Будучи найпростішою та легкою у впровадженні технікою сортування, сортування за допомогою міхура зазвичай використовується для представлення сортування аудиторії. По-друге, сортування бульбашок також використовується в таких додатках, як комп’ютерна графіка, де заповнення країв багатокутників тощо вимагає сортування бульбашок для сортування вершин, що вистилають багатокутник.
У нашому майбутньому підручнику ми детально дізнаємося про Сортування вибору.
=> Завітайте сюди, щоб вивчити C ++ з нуля.
Рекомендована література
- Сортування оболонки в C ++ з прикладами
- Сортування виділення в C ++ із прикладами
- Метод сортування MongoDB () із прикладами
- Команда сортування Unix із синтаксисом, опціями та прикладами
- Сортування вставки в C ++ із прикладами
- Об’єднати сортування в C ++ із прикладами
- Сортування купи в C ++ із прикладами
- Швидке сортування в C ++ із прикладами