Witam mam oszacować następujące 2 złożoności:
1: for i = 1 to n do
2: j = i
3: while j < n do
4: sum = P(i; j)
5: j + +
6: end while
7: end for
oraz:
1: for i = 1 to n do
2: j = i
3: while j < n do
4: sum = P(i; j)
5: j = j + j
6: end while
7: end for
Używając notacji tetha:
koszt wykonania procedury P(i; j) wynosi tetha(1)
koszt wykonania procedury P(i; j) wynosi tetha (j).
Ok weźmy pierwszy przykład:
1: for i = 1 to n do
<-- ta pętla wykona się tetha(n)
3: while j < n do
<--- natomiast ta z racji przypisania wcześniejszego wykona się tetha(n-1)
Skoro poniższe instrukcje mają wartość tetha(1) to złożoność w 1 przypadku będzie równa tetha(n(n-1))= tetha(n2-n) = tetha(n2)
Przykład nr 2 te same założenie:
Analogicznie jak w przypadku nr1 ponieważ i=j+j = tetha(1) bo jest pojedynczą instrukcją przypisania.
Przykład nr 1 na warunku 2:
Analogicznie z wyjątkiem takim , że while w środku będzie równy tetha(n) ponieważ j=n
Zatem tetha(n(n2-n) = tetha (n3)
Przeykład nr 2 na warunku 2:
Analogicznie jak przykład nr1.
Proszę sprawdzić i ewentualnie poprawić. (zaznaczam,że to moje pierwsze przykłady z algorytmami.)