Odredi funkciju vremenske složenosti T(n) i red O(T(n)) za slijedeći kod
int a = 0, b = 0; for (i = 0; i < N; i++) { a = a + rand(); } for (j = 0; j < M; j++) { b = b + rand(); } Rješenje: T(n) = n + m (Napomena: N je ulazna količina podataka dok je M konstanta) Red je O(n) 2. Odredi funkciju vremenske složenosti T(n) i red O(T(n)) za slijedeći kod int a = 0; for (i = 0; i < N; i++) { for (j = N; j > i; j--) { a = a + i + j; } } Rješenje: T(n) = n * n Red je 0(n*n)
3. Odredi funkciju vremenske složenosti T(n) i red O(T(n)) za slijedeći kod
int i, j, k = 0; for (i = n / 2; i <= n; i++) { for (j = 2; j <= n; j = j * 2) { k = k + n / 2; } } Rješenje: T(n) = (n/2) * logn Red je O(nlogn)
4. Što znači kad kažemo da je algoritam X asimptotski učinkovitiji od algoritma Y?
a. Algoritam X će uvijek biti bolji odabir za male količine podataka
b. Algoritam X će uvijek biti bolji odabir za velike količine podataka c. Algoritam Y će uvijek biti bolji odabir za male količine podataka d. Algoritam X će uvijek biti bolji odabir za sve količine podataka
Rješenje: b. Algoritam X će uvijek biti bolji odabir za velike količine podataka
5. Odredi funkciju vremenske složenosti T(n) i red O(T(n)) za slijedeći kod
int a = 0, i = N; while (i > 0) { a += i; i /= 2; } Rješenje:T(n) = logn Red je O(logn)