KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 2.
Jak nazywa się metoda sortowania, polegająca na wielokrotnym przeglądaniu kolejnych elementów tablicy i zamianie miejscami elementów sąsiadujących tak, aby zachowały regułę porządkującą?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Sortowanie bąbelkowe polega na wielokrotnym przechodzeniu po tablicy i porównywaniu par elementów sąsiadujących.
Gdy para jest w złej kolejności względem reguły (np. rosnącej), elementy zamienia się miejscami. Powtarzanie przejść powoduje, że skrajne wartości "wypływają" na koniec/początek tablicy.

Pełne wyjaśnienie:

Opis w pytaniu wskazuje na algorytm, w którym wykonuje się wiele przejść po tablicy, a podstawową operacją jest zamiana miejscami elementów sąsiadujących, jeśli są w złej kolejności względem przyjętej reguły (np. rosnącej). To dokładnie mechanizm sortowania bąbelkowego.

W praktyce algorytm działa tak: porównuje kolejne pary (i, i+1). Jeżeli element po lewej jest większy od elementu po prawej (dla porządku rosnącego), następuje zamiana. Po jednym przejściu największy element trafia na koniec (stąd skojarzenie "bąbel" wypływa). Następne przejścia powtarzają proces dla pozostałej części tablicy, aż nie będzie żadnej zamiany.

Dlaczego pozostałe odpowiedzi nie pasują do opisu?

  • Sortowanie szybkie opiera się na podziale danych względem elementu rozdzielającego (pivot) i rekurencyjnym porządkowaniu części, a nie na serii zamian sąsiadów.
  • Sortowanie kubełkowe polega na rozrzuceniu elementów do "kubełków" według zakresów/kluczy i złożeniu wyniku; to inna idea niż porównywanie sąsiadów w tablicy.
  • Sortowanie przez wybór w każdej iteracji wyszukuje (np.) minimum/maksimum i umieszcza je na właściwej pozycji; nie jest definiowane przez wielokrotne zamiany elementów sąsiadujących.

Wskazówka egzaminacyjna: jeśli w treści pojawia się fraza typu "zamiana sąsiadujących elementów" oraz "wielokrotne przeglądanie", to najczęściej chodzi właśnie o sortowanie bąbelkowe.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Sortowanie bąbelkowe to proste sortowanie porównaniowe. Polega na wielokrotnym przechodzeniu po tablicy i porównywaniu sąsiadów; jeśli są w złej kolejności, zamienia się je miejscami. Po każdym przejściu element skrajny (np. największy) trafia na właściwy koniec.
Zamiana sąsiadów to najprostszy sposób lokalnego "naprawiania" kolejności. Każda taka zamiana zmniejsza liczbę inwersji w tablicy, a powtarzanie przejść powoduje stopniowe przesuwanie elementów na właściwe pozycje bez potrzeby skomplikowanych operacji.
Szukaj cech: wiele przejść po tablicy, porównywanie elementów (i, i+1) i zamiana sąsiadów, gdy są w złej kolejności. Jeśli opis mówi o "wypływaniu" największego elementu na koniec, to także typowa wskazówka.
Sortowanie bąbelkowe porządkuje dane przez wielokrotne zamiany elementów sąsiadujących. Sortowanie szybkie działa przez podział względem pivota: elementy mniejsze trafiają na lewo, większe na prawo, a potem porządkuje się części rekurencyjnie. To inny mechanizm i zwykle lepsza wydajność.
W sortowaniu przez wybór w każdej iteracji wyszukuje się minimum/maksimum w nieposortowanej części i umieszcza na docelowej pozycji (jedna główna zamiana na iterację). W bąbelkowym porządek poprawia się lokalnie, przez liczne zamiany sąsiadujących elementów podczas kolejnych przejść.
W typowej wersji sortowanie bąbelkowe jest stabilne, bo elementy równe nie muszą być zamieniane miejscami (zamienia się tylko wtedy, gdy kolejność jest błędna). Stabilność zależy jednak od warunku porównania w implementacji, więc warto sprawdzić, czy dla równości nie ma zamiany.
Najgorszy przypadek to zwykle tablica posortowana dokładnie odwrotnie do oczekiwanego porządku (np. malejąco przy sortowaniu rosnącym). Wtedy występuje najwięcej inwersji i potrzeba bardzo wielu porównań oraz zamian, bo elementy muszą "przepłynąć" przez prawie całą tablicę.
Tak. Częsta optymalizacja to przerwanie działania, gdy w danym przejściu nie wykonano żadnej zamiany. Oznacza to, że tablica jest już posortowana. Inną modyfikacją jest zapamiętywanie ostatniej pozycji zamiany i skracanie zakresu kolejnych przejść.
Typowe błędy to: zły zakres pętli (wyjście poza tablicę przy i+1), brak zmniejszania zakresu po każdym przejściu, pomylenie warunku porządku (rosnąco vs malejąco) oraz niepoprawne użycie flagi "czy była zamiana", co psuje wczesne zakończenie algorytmu.
Ucz się rozpoznawania algorytmów po mechanizmie: zamiany sąsiadów (bąbelkowe), wybór minimum/maksimum (przez wybór), podział względem pivota (szybkie), łączenie posortowanych części (przez scalanie). Przećwicz ręczne sortowanie krótkich tablic i analizę pseudokodu.
info

Statystycznie 60% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że powtarzanie przejść powoduje, że skrajne wartości "wypływają" na koniec/początek tablicy.

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Wprowadzenie do algorytmów" (Introduction to Algorithms), rozdział o sortowaniu przez porównania (opis bubble sort) – wydanie książkowe
  • Wikipedia (pl): "Sortowanie bąbelkowe" https://pl.wikipedia.org/wiki/Sortowanie_b%C4%85belkowe (dostęp: 2026-02-27)
  • Wikipedia (en): "Bubble sort" https://en.wikipedia.org/wiki/Bubble_sort (accessed 2026-02-27)

Materiały:

  • Podręczniki i materiały do podstaw algorytmiki (sortowania porównaniowe)
  • Dokumentacja i kursy wprowadzające do programowania: tablice, pętle, złożoność
  • Ćwiczenia: ręczne przejście sortowania bąbelkowego na krótkich tablicach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego