KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 2.
Jak nazywa się metoda sortowania polegająca na podziale na n przedziałów jednakowej długości, w których następuje sortowanie, po czym posortowane zawartości przedziałów są poddawane analizie i prezentacji?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Sortowanie kubełkowe polega na podziale danych na przedziały (kubełki) według zakresu wartości, następnie na sortowaniu elementów w każdym kubełku i na końcu na połączeniu kubełków w jeden ciąg. Pozostałe metody to sortowania porównawcze bez etapu dystrybucji do przedziałów.

Pełne wyjaśnienie:

Sortowanie kubełkowe (bucket sort) rozpoznaje się po charakterystycznym schemacie: najpierw dane są rozdzielane do kilku przedziałów (kubełków) na podstawie wartości (np. zakresów liczbowych), potem każdy kubełek jest sortowany osobno (dowolną metodą, często prostą, np. przez wstawianie), a na końcu zawartości kubełków są łączone w kolejności przedziałów, co daje wynik globalnie posortowany.

Opis w pytaniu mówi wprost o:

  • podziale na n przedziałów jednakowej długości (to typowy sposób definiowania kubełków dla danych liczbowych),
  • wykonywaniu sortowania w obrębie przedziałów,
  • następnym zestawieniu/połączeniu posortowanych zawartości przedziałów.

Dlatego odpowiedź "Sortowanie kubełkowe" jest zgodna z mechanizmem działania algorytmu.

Dlaczego pozostałe odpowiedzi nie pasują?

  • "Sortowanie szybkie" opiera się na wyborze elementu rozdzielającego (pivot) i partycjonowaniu na mniejsze i większe elementy, ale nie polega na stałym podziale na równe przedziały wartości ani na dystrybucji do kubełków.
  • "Sortowanie bąbelkowe" wykonuje wielokrotne porównania i zamiany sąsiednich elementów, przesuwając skrajne wartości krok po kroku; nie ma etapu grupowania do przedziałów.
  • "Sortowanie przez wybór" wybiera kolejno najmniejszy (lub największy) element z nieposortowanej części i przenosi go na właściwe miejsce; również jest to sortowanie porównawcze bez kubełków.

Wskazówka egzaminacyjna: jeśli w opisie pojawiają się "kubełki/przedziały", "rozkład elementów do pojemników" i "scalanie pojemników", to niemal zawsze chodzi o bucket sort (ewentualnie o inne sortowania nieporównawcze, ale wtedy zwykle mówi się o zliczaniu lub cyfrach).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Sortowanie kubełkowe polega na rozdzieleniu elementów do kilku "kubełków" (przedziałów) według ich wartości, następnie posortowaniu zawartości każdego kubełka osobno i połączeniu kubełków w kolejności. Działa najlepiej, gdy dane są dość równomiernie rozłożone.
Szukaj słów i idei: przedziały/kubełki, dystrybucja elementów do pojemników wg zakresu, potem sortowanie w kubełkach i na końcu scalenie zawartości. Taki trzyetapowy opis jest najbardziej charakterystyczny.
Sortowanie szybkie dzieli dane względem elementu rozdzielającego (pivot) na mniejsze i większe, a potem rekurencyjnie sortuje części. Nie ma etapu przypisywania do stałych przedziałów wartości ani łączenia kubełków. To sortowanie porównawcze, a kubełkowe jest dystrybucyjne.
Najlepiej sprawdza się, gdy znasz zakres danych (np. liczby z ograniczonego przedziału) i gdy rozkład jest w miarę równomierny. Wtedy kubełki mają podobne rozmiary i sortowanie w każdym kubełku jest krótkie, co daje bardzo dobrą wydajność.
Często są to dane liczbowe: oceny, wyniki pomiarów, ceny, wartości z normalizowanego zakresu (np. [0,1)). W aplikacjach webowych może to być wstępne grupowanie rekordów wg zakresów (np. przedziały cenowe), zanim wyświetlisz je użytkownikowi.
Nie w podstawowej idei. Kluczowy etap to dystrybucja do kubełków na podstawie wartości (bez porównań "każdy z każdym"). Natomiast sortowanie wewnątrz kubełków może być porównawcze (np. przez wstawianie), więc w praktyce algorytm bywa hybrydą.
Najczęściej myli się je z quicksort, bo oba "dzielą" zbiór na części. Różnica jest taka, że kubełkowe dzieli po zakresach wartości (kubełki), a quicksort dzieli względem pivotu. Drugi błąd to ignorowanie etapu łączenia kubełków.
Wymaga sensownego sposobu mapowania elementów do kubełków i zwykle zakłada znajomość zakresu wartości. Gdy dane są bardzo nierównomierne (większość trafia do jednego kubełka), wydajność spada, bo wtedy dominuje koszt sortowania dużego kubełka.
Sortowanie przez zliczanie bazuje na tablicy liczników dla każdej wartości (lub indeksu) i działa świetnie dla małego zakresu liczb całkowitych. Kubełkowe dzieli zakres na przedziały (kubełki), a w każdym kubełku przechowuje elementy i sortuje je lokalnie, co bywa lepsze dla danych ciągłych.
Ćwicz rozpoznawanie algorytmu po opisie kroków: pivot (quicksort), zamiany sąsiadów (bąbelkowe), wybór minimum (przez wybór), kubełki/przedziały (kubełkowe). Dodatkowo przejrzyj typowe własności: stabilność, złożoność i wymagania co do danych.
info

To pytanie poprawnie rozwiązuje 40% zdających egzamin. trudne

W praktyce zawodowej kluczowe jest to, że sortowanie kubełkowe polega na podziale danych na przedziały (kubełki) według zakresu wartości, następnie na sortowaniu elementów w każdym kubełku i na końcu na połączeniu kubełków w jeden ciąg.

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Introduction to Algorithms", 3rd ed., rozdział o sortowaniach liniowych (Bucket Sort).
  • Wikipedia (EN): https://en.wikipedia.org/wiki/Bucket_sort - accessed 2026-02-27
  • GeeksforGeeks: https://www.geeksforgeeks.org/bucket-sort-2/ - accessed 2026-02-27

Materiały:

  • Podręczniki do algorytmów i struktur danych (rozdziały o sortowaniach nieporównawczych)
  • Dokumentacja/artykuły porównujące bucket sort, counting sort i radix sort
  • Zadania programistyczne: implementacja bucket sort dla liczb zmiennoprzecinkowych z zakresu [0,1)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego