Które określenie najlepiej opisuje złożoność obliczeniową algorytmy quicksort?
Które określenie najlepiej opisuje złożoność obliczeniową algorytmy quicksort?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: D
Uzasadnienie i szersze wyjaśnienie:
Quicksort (sortowanie szybkie) jest algorytmem działającym na zasadzie „dziel i zwyciężaj”. Jego wydajność jest silnie uzależniona od sposobu wyboru elementu rozdzielającego (piwota), który służy do podziału tablicy na dwie części.
- Średni i najlepszy przypadek: Jeśli piwot jest wybierany w taki sposób, że dzieli tablicę na w miarę równe części, złożoność obliczeniowa wynosi O(n log n), co jest bardzo wydajne.
- Najgorszy przypadek: Jeśli piwot jest wybierany skrajnie źle (np. zawsze najmniejszy lub największy element w już posortowanej tablicy), podziały są bardzo nierówne, a złożoność algorytmu degraduje do O(n²).
Zatem stwierdzenie, że złożoność jest różna w zależności od wyboru elementu rozdzielającego, najdokładniej opisuje charakterystykę tego algorytmu.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: W średnim przypadku złożoność Quicksort (O(n log n)) jest znacznie niższa (lepsza) niż złożoność sortowania bąbelkowego (O(n²)).
- B: To nieprawda. Istnieją algorytmy, które w pewnych warunkach są szybsze (np. sortowanie przez zliczanie o złożoności O(n)), a sortowanie przez scalanie ma gwarantowaną złożoność O(n log n), co jest lepsze niż najgorszy przypadek Quicksort.
- C: Złożoność Quicksort nigdy nie jest wyższa niż O(n²).
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ą:
- #144
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: