Źródło: Arkusze CKE
Programista pragnie wybrać algorytm, który najszybciej przetwarza dane w jego aplikacji. Na podstawie złożoności obliczeniowej przedstawionej w tabeli, należy wskazać algorytm numer
Algorytm 1O(n²)Algorytm 2O(n!)Algorytm 3O(n³)Algorytm 4O(n)Algorytm 5O(n²)
Warianty odpowiedzi
-
A
2 lub 3
-
B
1 lub 5
-
C
4
-
D
3
Wyjaśnienie
Notacja dużego O opisuje, jak rośnie czas wykonania algorytmu wraz ze wzrostem liczby danych wejściowych (n). Im wolniej rośnie ta funkcja, tym algorytm jest szybszy.
Uporządkujmy podane złożoności od najbardziej obciążającej do najwydajniejszej:
- O(n!) silnia rośnie gigantycznie szybko, algorytm zapycha się nawet przy małych danych,
- O(n³) oraz O(n²) to złożoności wielomianowe, wciąż wolne dla dużych zbiorów,
- O(n) to złożoność liniowa.
Złożoność O(n) oznacza, że przy dziesięciokrotnym wzroście liczby danych, czas wykonania wzrośnie również dziesięciokrotnie. To zdecydowanie najszybszy wynik w tym zestawieniu, dlatego właściwym wyborem jest Algorytm 4.