Bubble sort в C е прост алгоритъм за сортиране, който многократно сравнява съседните елементи на дадения масив и ги разменя, ако са в грешен ред. Може би се чудите за името Bubble Sort. Следват указанията, обхванати в тази статия:
- Какво е сортиране на балончета в C?
- Алгоритъм на сортиране на балончета
- Пример за сортиране на балончета в C
- Функция за сортиране на балончета
- Сортиране на балончета в програма C
Какво е сортиране на балончета в C?
Техниката за сортиране се нарича така, защото алгоритъмът действа като балон, по-леките елементи се появяват и по-тежките елементи се утаяват. Алгоритъмът за сортиране на балончета сортира списъка по проходи. Сега за сортиране на списък с n елемента Bubble sort изисква n-1 пропуска. За да стане по-ясно, нека разберем това стъпка по стъпка.
Алгоритъм на сортиране на балончета
- Пас 1 :
- X [0] и X [1] се сравняват и се разменят, ако X [0]> X [1]
- X [1] и X [2] се сравняват и се разменят, ако X [1]> X [2]
- X [2] и X [3] се сравняват и се разменят, ако X [2]> X [3] и т.н. & hellip
- В края на проход 1 най-големият елемент от списъка се поставя в най-високия индекс на списъка.
- Пропуск 2:
- X [0] и X [1] се сравняват и се разменят, ако X [0]> X [1]
- X [1] и X [2] се сравняват и се разменят, ако X [1]> X [2]
- X [2] и X [3] се сравняват и се разменят, ако X [2]> X [3] и т.н. & hellip
- В края на Pass 2 вторият по големина елемент от списъка се поставя на втория по височина индекс на списъка.
- Пас n-1:
- X [0] и X [1] се сравняват и се разменят, ако X [0]> X [1]
- X [1] и X [2] се сравняват и се разменят, ако X [1]> X [2]
- X [2] и X [3] се сравняват и се разменят, ако X [2]> X [3] и т.н. & hellip
- В края на този проход. Най-малкият елемент от списъка се поставя в първия индекс на списъка.
Пример за сортиране на балончета в C
Масив: -5, 35, 2, 13, -15
Пас 1
- ( -5, 35 , 2, 13, -15) -> ( -5, 35 , 2, 13, -15), Тук алгоритъмът сравнява първите два елемента.
- (-5, 35, 2 , 13, -15) -> (-5, 2, 35 , 13, -15), разменете от 35> 2
- (-5, 2, 35, 13 , -15) -> (-5, 2, 13, 35 , -15), разменете от 35> 13
- (-5, 2, 13,35, -15) -> (-5, 2, 13,-15, 35), Разменете от 35> -15
Последният елемент е най-големият елемент.
Пас 2
- ( -5, 2 , 13, -15, 35) -> (- 5, 2 , 13, -15, 35)
- (-5, 2, 13, 35, -15) -> (-5, 2, 13 , -15, 35)
- (-5, 2, 13, -15 , 35) -> (-5, 2, -15, 13 , 35), Разменете от 13> -15
Вторият последен елемент е вторият по големина елемент.
извлечения за контрол на потока в java
Пас 3
- ( -5, 2 , -15, 13, 35) -> ( -5, 2 , -15, 13, 35)
- (-5, 2, -15 , 13, 35) -> (-5, -15, 2 , 13, 35), разменете от 2> -15
Третият последен елемент е третият по големина елемент.
Пас 4
- ( -5, -15 , 2, 13, 35) -> ( -15, -5 , 2, 13, 35), разменете от -5> -15
В крайна сметка първата е най-малката & 2 nd е вторият най-малък елемент в масива. Така че, в този случай бяха необходими четири прохода за сортиране на масив от 5 елемента.
Преди да разгледаме подробно алгоритъма, нека разгледаме сложността във времето на алгоритъма Bubble Sort in C.
Сложността на Bubble Sort
- Най-лошата сложност:На2)
- Най-добрата сложност:На2)
- Средна сложност на случая:На)
Сега нека да разгледаме бързо алгоритъма, за да можем да напишем алгоритъма за сортиране на балончета в C.
предаване по стойност и преминаване по референтен java
Функция за сортиране на балончета
void bubbleSort (int array [], int n) {int i, j // Преминаване в Bubble Sort за (i = 0 iСортиране на балончета в програма C
#include // Функция за размяна на елементи void swap (int * a, int * b) {int temp = * a * a = * b * b = temp} // функция за сортиране на балони void bubbleSort (int array [], int n ) {int i, j за (i = 0 i
Сега след изпълнението на горната програма C бихте разбрали как работи Bubble Sort и как да го приложите на език C. Надявам се, че този блог е информативен и с добавена стойност за вас.
Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия за сортиране на балончета и ние ще се свържем с вас възможно най-скоро.