Z tabeli przedstawiającej złożoność obliczeniową algorytmów sortowania na dowolnym, dużym, zbiorze wejściowym (ponad 100 elementów) wynika, że najszybszą metodą jest algorytm sortowania:
Z tabeli przedstawiającej złożoność obliczeniową algorytmów sortowania na dowolnym, dużym, zbiorze wejściowym (ponad 100 elementów) wynika, że najszybszą metodą jest algorytm sortowania:
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Złożoność obliczeniowa, wyrażona w notacji Wielkiego O, opisuje, jak czas wykonania algorytmu rośnie wraz ze wzrostem liczby danych wejściowych (n). Algorytm jest tym „szybszy” (bardziej wydajny) dla dużych zbiorów danych, im wolniej rośnie jego funkcja złożoności.
Porównajmy złożoności z tabeli:
- O(n²) (kwadratowa) – sortowanie bąbelkowe, kubełkowe. Jest to najwolniejsza kategoria. Czas rośnie bardzo szybko wraz z
n. - O(n log n) (logarytmiczno-liniowa) – sortowanie przez scalanie. Jest znacznie szybsza niż O(n²).
- O(n) (liniowa) – sortowanie przez zliczanie. Jest to najszybsza kategoria. Czas rośnie proporcjonalnie do liczby elementów.
Zgodnie z tym porównaniem, sortowanie przez zliczanie o złożoności O(n) jest teoretycznie najszybszym algorytmem spośród wymienionych, ponieważ jego czas wykonania rośnie najwolniej.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. przez scalanie: Ma złożoność O(n log n), która jest bardzo dobra, ale wolniejsza niż liniowa O(n).
- B. bąbelkowego: Ma złożoność O(n²), co czyni go jednym z najwolniejszych algorytmów sortowania dla dużych zbiorów danych.
- D. kubełkowego: W tabeli podano złożoność O(n²), która jest złożonością w najgorszym przypadku. Chociaż średnia złożoność sortowania kubełkowego jest często lepsza (bliska liniowej), na podstawie danych z tabeli należy uznać je za wolniejsze od sortowania przez zliczanie.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Sortowanie przez zliczanie (Counting Sort) i Kubełkowe (Bucket Sort)Nieporównaniowe algorytmy sortowania o liniowej złożoności czasowej O(n+k), opierające się na zliczaniu wystąpień kluczy lub podziale liczb na kubełki w znanym przedziale.
- Sortowanie przez scalanie (Merge Sort)Stabilny algorytm sortowania dzielący tablicę na połowy, sortujący je rekurencyjnie i scalający dwa posortowane ciągi w czasie O(n log n).
- Pojęcie i Cechy AlgorytmuUporządkowany, skończony i jednoznaczny ciąg instrukcji i kroków postępowania prowadzący do rozwiązania określonego problemu obliczeniowego dla poprawnych danych wejściowych.
Podobne pytania z działu „Algorytmy sortowania i wyszukiwania”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 23 pytań z tego działu.
- #93
Aby zaprojektować zestaw danych do zainicjowania algorytmu sortowania bąbelkowego tablicy, należy zastosować przynajmniej typy:
- #103
Metoda poszukiwań w tablicach posortowanych, która polega na podzieleniu tablicy na kilka bloków i wyszukaniu liniowym tylko w tym bloku, w którym docelowy element może się znajdować, w języku angielskim nosi nazwę
- #129
Który z wymienionych algorytmów działających na tablicy jednowymiarowej ma złożoność obliczeniową O(n2)?
- #143
Strategia budowania algorytmu poprzez podział na dwa lub więcej mniejszych podproblemów tak długo, aż fragmentu staną się proste do bezpośredniego rozwiązania jest metodą:
- #156
Wskaż niestabilny algorytm sortowania