» »

časovna zahtevnost algoritmov

časovna zahtevnost algoritmov

majster123 ::

Torej zanima me, ali sem prav izračunal časovno zahtevnost teh 2 podanih algoritmov.

1.
for(int i = 0; i<n; i++){ if( i % 2 == 0)
 for(int j = 0; j < n; j++) { x++;}}


Tukaj nisem 100 % ali naj množim n-ja ali seštevam.
calculation: T(n) = n*n = n^2

-order: O(x) : x = n^2

2.
int j = 0; while(j<n){
for(int i = 0; i<n; i++){x++; j++;}}

Tukaj isto nisem ziher.
-calculation: T(n) n+n = 2n

-order: O(x) : x = n

technolog ::

Si.

lebdim ::

Ja, načeloma, če sta 2 for zanki, je kompleksnost for zanke N, in ker sta dve, je N*N = N2 ... tako da bi bil v celoti O(N2) Preverjanje znotraj prve for zanke pa se izvede (N + 1)-krat, ampak to bi pa seštel, če bi moral izračunati točno število operacij...

Zgodovina sprememb…

  • spremenil: lebdim ()

majster123 ::

Kaj pri prvem primeru, se i%2 smatra kot 1/2 in bi bil postopek (n/2)*n ali je prav n*n? Časovna zahtevnost ostaja ista to vem.