bubble sort c with examples
Technika sortowania bąbelkowego w C ++.
Sortowanie bąbelkowe to najprostsza z technik sortowania.
W technice sortowania bąbelkowego każdy element listy jest porównywany z sąsiednim elementem. Zatem jeśli jest n elementów na liście A, to A (0) jest porównywane z A (1), A (1) jest porównywane z A (2) i tak dalej.
Po porównaniu, czy pierwszy element jest większy niż drugi, dwa elementy są wtedy zamieniane.
=> Odwiedź tutaj, aby zapoznać się z pełnym kursem C ++ od ekspertów.
Czego się nauczysz:
narzędzie do skanowania i naprawy komputera z systemem Windows 10
- Technika sortowania bąbelkowego
- Ilustracja
- Przykład w C ++
- Przykład Java
- Analiza złożoności algorytmu sortowania bąbelkowego
- Wniosek
- rekomendowane lektury
Technika sortowania bąbelkowego
Korzystając z techniki sortowania bąbelkowego, sortowanie odbywa się w przebiegach lub iteracjach. W ten sposób na końcu każdej iteracji najcięższy element jest umieszczany w odpowiednim miejscu na liście. Innymi słowy, pojawia się największy element na liście.
Poniżej podaliśmy ogólny algorytm techniki sortowania bąbelkowego.
Algorytm ogólny
Krok 1 : Dla i = 0 do N-1 powtórz krok 2
Krok 2 : Dla J = i + 1 do N - powtarzam
Krok 3 : jeśli A (J)> A (i)
Zamień A (J) i A (i)
(End of Inner for loop)
(End if Outer for loop)
Krok 4 : Wyjście
Oto pseudokod algorytmu sortowania bąbelkowego, w którym przechodzimy przez listę przy użyciu dwóch iteracyjnych pętli.
W pierwszej pętli zaczynamy od 0thelement iw następnej pętli zaczynamy od sąsiedniego elementu. W treści pętli wewnętrznej porównujemy każdy z sąsiednich elementów i zamieniamy je, jeśli nie są w kolejności. Pod koniec każdej iteracji zewnętrznej pętli najcięższy pierwiastek wypływa na końcu.
Pseudo kod
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
Powyższy pseudokod dla techniki sortowania bąbelkowego. Zilustrujmy teraz tę technikę za pomocą szczegółowej ilustracji.
Ilustracja
Bierzemy tablicę o rozmiarze 5 i ilustrujemy algorytm sortowania bąbelkowego.
Tablica całkowicie posortowana.
Powyższą ilustrację można podsumować w formie tabelarycznej, jak pokazano poniżej:
Przechodzić | Niesortowana lista | porównanie | Posortowana lista |
---|---|---|---|
{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} | |
dwa | {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} | SORTOWANE |
Jak pokazano na ilustracji, z każdym przebiegiem największy element przechodzi do ostatniego, w ten sposób sortując listę z każdym przebiegiem. Jak wspomniano we wstępie, każdy element jest porównywany z sąsiednim elementem i zamieniany między sobą, jeśli nie są w kolejności.
Tak więc, jak pokazano na powyższej ilustracji, na końcu pierwszego przebiegu, jeśli tablica ma być posortowana w kolejności rosnącej, największy element jest umieszczany na końcu listy. W drugim przebiegu drugi co do wielkości element jest umieszczany na przedostatniej pozycji na liście i tak dalej.
Kiedy osiągniemy N-1 (gdzie N jest całkowitą liczbą elementów na liście), będziemy mieli posortowaną całą listę.
java vs c ++, co jest lepsze
Technikę sortowania bąbelkowego można zaimplementować w dowolnym języku programowania. Poniżej zaimplementowaliśmy algorytm sortowania bąbelkowego przy użyciu języka C ++ i Java.
Przykład w C ++
Zobaczmy przykład programowania, aby zademonstrować sortowanie bąbelkowe.
#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 < Wynik:
Lista wejściowa…
10 2 0 14 43 25 18 1 5 45
Posortowana lista elementów…
0 1 2 5 10 14 18 25 43 45
Liczba podań potrzebnych do posortowania listy: 10
Przykład 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) Wynik:

W obu programach użyliśmy tablicy 10 elementów i sortujemy ją za pomocą techniki sortowania bąbelkowego. W obu programach użyliśmy dwóch pętli for do iteracji przez sąsiednie elementy tablicy.
Na końcu każdego przebiegu (pętla zewnętrzna) największy element w tablicy jest propagowany aż do końca tablicy. Liczymy również liczbę przebiegów wymaganych do posortowania całej tablicy.
Analiza złożoności algorytmu sortowania bąbelkowego
Na podstawie pseudokodu i ilustracji, które widzieliśmy powyżej, w sortowaniu bąbelkowym wykonujemy porównania N-1 w pierwszym przebiegu, N-2 w drugim przebiegu i tak dalej.
Stąd całkowita liczba porównań w sortowaniu bąbelkowym wynosi:
I = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (ndwa) => Złożoność czasowa techniki sortowania bąbelkowego
Zatem różne zawiłości techniki sortowania bąbelkowego są podane poniżej:
W najgorszym przypadku złożoność czasowa O (nr 2) Złożoność czasu w najlepszym przypadku Na) Średnia złożoność czasowa O (nr 2) Złożoność przestrzeni O (1)
Technika sortowania bąbelkowego wymaga tylko jednego dodatkowego miejsca w pamięci dla zmiennej temp, aby ułatwić wymianę. Stąd złożoność przestrzeni dla algorytmu sortowania bąbelkowego wynosi O (1).
Zauważ, że najlepsza złożoność czasowa przypadku dla techniki sortowania bąbelkowego będzie wtedy, gdy lista jest już posortowana i będzie to O (n).
pl / sql pytania do wywiadów z programistami
Wniosek
Główną zaletą Bubble Sort jest prostota algorytmu. W przypadku sortowania bąbelkowego, z każdym przebiegiem, największy element przechodzi do końca listy, jeśli tablica jest posortowana w kolejności rosnącej.
Podobnie, aby lista została posortowana w porządku malejącym, najmniejszy element będzie na swoim miejscu na końcu każdego przebiegu.
Jako najprostsza i najłatwiejsza do wdrożenia technika sortowania, sortowanie bąbelkowe jest zwykle brane pod uwagę jako wprowadzenie sortowania do odbiorców. Po drugie, sortowanie bąbelkowe jest również używane w aplikacjach takich jak grafika komputerowa, w których wypełnianie krawędzi wielokątów itp. Wymaga sortowania bąbelkowego w celu sortowania wierzchołków otaczających wielokąt.
W naszym nadchodzącym samouczku szczegółowo omówimy sortowanie przez wybór.
=> Odwiedź tutaj, aby nauczyć się C ++ od podstaw.
rekomendowane lektury
- Sortowanie powłoki w C ++ z przykładami
- Wybór sortowania w C ++ z przykładami
- Metoda MongoDB Sort () z przykładami
- Polecenie sortowania Unix ze składnią, opcjami i przykładami
- Sortuj przez wstawianie w C ++ z przykładami
- Sortuj w C ++ z przykładami
- Sortuj na stosie w C ++ z przykładami
- Szybkie sortowanie w C ++ z przykładami