RF7VY1C3G78X2
Fotografia przedstawia bąbelki z powietrzem pod wodą.

I_P+R_W14_M12_Java Sortowanie metodą bąbelkową

Źródło: Eliška Motisová, domena publiczna.

Jednym z najdłużej używanych algorytmów jest algorytm sortowania bąbelkowego. Wynika to prawdopodobnie z prostoty implementacji i przejrzystej składni. Jest to jeden z wielu algorytmów sortowania.

Sortowanie bąbelkowe jest algorytmem liniowym bazującym na cyklicznym porównywaniu i zamianie kolejności par sąsiadujących ze sobą elementów. To algorytm stabilny, pracujący w miejscu. Oznacza to, że dla elementów o tej samej wartości zachowuje ich początkową kolejność i nie potrzebuje do swojego działania większej niż stała pamięci dodatkowej (poza pamięcią, w której przechowywane są dane wejściowe).

Algorytm sortowania bąbelkowego uznawany jest za rozwinięcie algorytmu sortowania naiwnego, które polega na badaniu kolejnych par elementów i zamianie ich miejscami, jeśli umieszczone są w złej kolejności, po czym cała operacja zaczyna się od początku. W tym e‑materiale dowiemy się, na czym polega sortowanie bąbelkowe, jak je zaimplementować i jakie są jego złożoności.

Ćwiczenie na rozgrzewkę

RcPbharBQ6q371
Ćwiczenie 1
Ile porównań zostanie wykonanych, jeżeli rozmiar tablicy, która ma zostać posortowana bez użycia flagi, wynosi 4? Możliwe odpowiedzi: 1. 4, 2. 5, 3. 6, 4. 7
Twoje cele
  • Przeanalizujesz działanie algorytmu sortowania bąbelkowego.

  • Prześledzisz, w jaki sposób można usprawnić algorytm sortowania bąbelkowego.

  • Zbadasz złożoność czasową oraz pamięciową algorytmu sortowania bąbelkowego.

  • Posortujesz przykładowy ciąg liczbowy za pomocą sortowania bąbelkowego.

  • Prześledzisz działanie napisanego w języku Java programu stosującego algorytm sortowania bąbelkowego.

  • Zbadasz możliwość poprawy efektywności algorytmu sortowania bąbelkowego.

  • Przygotujesz w języku Java własną implementację algorytmu sortowania bąbelkowego.