Jaka jest złożoność obliczeniowa (w notacji Wielkiego O) przedstawionej metody processData w zależności od rozmiaru tablicy n (gdzie n = array.length)?
Jaka jest złożoność obliczeniowa (w notacji Wielkiego O) przedstawionej metody processData w zależności od rozmiaru tablicy n (gdzie n = array.length)?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Przy określaniu złożoności obliczeniowej algorytmu, który składa się z kilku następujących po sobie części, bierzemy pod uwagę najwolniej rosnący (dominujący) składnik. Przeanalizujmy obie części metody:
Część 1: Jest to pojedyncza pętla
for, która przechodzi przez wszystkie elementy tablicy raz. Liczba operacji jest wprost proporcjonalna don. Zatem złożoność tej części to O(n).Część 2: Są to dwie zagnieżdżone pętle
for. Pętla zewnętrzna wykonuje sięnrazy. Dla każdej z tychniteracji, pętla wewnętrzna również wykonuje sięnrazy. Całkowita liczba operacji jest więc rzędun * n, co daje złożoność O(n²).
Kiedy łączymy obie części (O(n) + O(n²)), dominującym składnikiem, który rośnie znacznie szybciej wraz ze wzrostem n, jest O(n²). Dlatego cała metoda ma złożoność obliczeniową O(n²).
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. O(n): Ta odpowiedź byłaby poprawna, gdyby w kodzie znajdowała się tylko pierwsza pętla. Druga, zagnieżdżona pętla, rośnie znacznie szybciej i dominuje złożoność.
- B. O(n * log n): Jest to typowa złożoność dla wydajnych algorytmów sortowania (np. Merge Sort) lub algorytmów typu „dziel i zwyciężaj”. Nie pasuje do struktury zagnieżdżonych pętli w tym kodzie.
- D. O(2n): W notacji Wielkiego O stałe (takie jak 2) są pomijane, ponieważ nie mają one wpływu na tempo wzrostu funkcji dla dużych
n. O(2n) upraszcza się do 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
- Złożoność obliczeniowa (Big O Notation)Formalna miara efektywności algorytmu określająca zapotrzebowanie na czas procesora lub pamięć w funkcji rozmiaru danych wejściowych (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.
- Paradygmat Dziel i Zwyciężaj (Divide and Conquer)Wiodąca technika projektowania algorytmów polegająca na rekurencyjnym podziale problemu na mniejsze podproblemy tego samego typu, ich rozwiązaniu i scaleniu wyników.
Podobne pytania z działu „Zlozonosc obliczeniowa i efektywnosc”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 4 pytań z tego działu.
- #163
Programista chce dobrać najszybciej działający algorytm przetwarzania danych w swojej aplikacji. Na podstawie przedstawionej w tabeli złożoności obliczeniowej, należy wybrać algorytm numer
- #240
Dla podanego algorytmu złożoność obliczeniowa jest równa
- #597
Algorytm polega na dwukrotnym wykonaniu prostych operacji na każdym elemencie tablicy. Złożoność obliczeniowa takiego problemu to: