ALG9

ALG9



59

3.2. Przykład 1: Jeszcze raz funkcja silnia...

Tę poszukiwaną funkcję będziemy zwać złożonością teoretyczną' i z nią najczęściej można się spotkać przy opisach „katalogowych” określonych algorytmów. Funkcja ta jest najczęściej oznaczana przez O. Zastanówmy się, w jaki sposób możemy ją otrzymać.

Istnieją dwa klasyczne podejścia, prowadzące z reguły do tego samego rezultatu: albo będziemy opierać się na pewnych twierdzeniach matematycznych i je aplikować w określonych sytuacjach, albo też dojdziemy do prawidłowego wyniku metodą intuicyjną.

Wydaje mi się, że to drugie podejście jest zarówno szybkie, jak i znacznie przystępniejsze, dlatego skoncentrujemy się najpierw na nim. Popatrzmy w tym celu na tablicę 3-2 zawierającą kilka przykładów „wyłuskiwania” złożoności teoretycznej z równań określających złożoność praktyczną.

Wyniki zawarte w tej tabelce możemy wyjaśnić w następujący sposób: w równaniu pierwszym pozwolimy sobie pominąć stałą 1 i wynik nie ulegnie znaczącej zmianie. W równaniu drugim o wiele ważniejsza jest funkcja kwadratowa niż liniowa zależność od n: podobnie jest w równaniu trzecim, w którym dominuje funkcja 2".

T(n)

O

3n+l

O(n)

n:-n+1

O(ir)

2"+n2+4

0(2")


Tabela 3 - 2.

Złożoność teoretyczna algorytmów - przykłady.

Pojęcie funkcji O jest jednak kluczowe, zatem dla ciekawskich warto przytoczyć formalną definicję matematyczną. W tym celu przypomnijmy następujące oznaczenia znane z podręczników analizy matematycznej:

•    N,\R i są zbiorami liczb odpowiednio naturalnych i rzeczywistych (wraz z zerem);

•    Plus (+) przy nazwie zbioru oznacza wykluczenie z niego zera (np.

/V* jest zbiorem liczb naturalnych dodatnich);

•    9\ ’ będziemy oznaczać zbiór liczb rzeczywistych dodatnich lub zero;

•    Znak graficzny t—> oznacza przyporządkowanie;

•    Znak graficzny V należy' czytać jako: dla kctżdego\

I -

1 Lub klasą algorytmu - określenie zresztą znacznie częściej używane.


Wyszukiwarka

Podobne podstrony:
ALG1 3.2. Przykład 1: Jeszcze raz funkcja silnia... 61 W obliczeniach wykonywanych przez programist
6 3.2.    Przykład 1: Jeszcze raz funkcja
120485660101873325392447506232 n 0;Q!^l£Śis!^cych Pos-a-cl_____ BOHATER jeszcze raz udaje się na
op 01 0019 ONE PIECEII 7- v JESZCZE    M02ESZ NIE    WZIĄĆ TE 1 OTW
73047 SSA42188 34 Spójrzmy jeszcze raz na całą tę „mapę”. Oto: CHRONOLOGIA PIERWSZYCH WYSTĄPIEŃ
442 ZBIGNIEW GOLINSKI Dodać należy jeszcze jeden przykład, zbliżony w swej funkcji do poprzedniego.
ALG9 2.5. Pułapek ciąg dalszy 39 nie będzie mógł sprawdzić: jak rzeczywisty kompilator wykona tę fu
ALG9 2.9. Zadania 49Zad. 2-3 Napisać funkcję, która otrzymując liczbę całkowitą dodatnią wypisze je
ALG9 5.1. Listy jednokierunkowe 119 wartość zwracaną przez funkcję: w normalnej sytuacji winien to
ALG9 6.5, Metoda funkcji przeciwnych 179 b=l; olso ( PI(a-l,b); // tu funkcja odwrotna? b=b+a; ) Se
Image013 1P :; -70 Wychowanie jako zwalczanie zdrowych instynktów życiowych wtedy, te jeśli Kasia je

więcej podobnych podstron