Forum » Programiranje » časovna zahtevnost algoritmov
časovna zahtevnost algoritmov
majster123 ::
Torej zanima me, ali sem prav izračunal časovno zahtevnost teh 2 podanih algoritmov.
1.
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.
Tukaj isto nisem ziher.
-calculation: T(n) n+n = 2n
-order: O(x) : x = n
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
- premaknil iz Mali oglasi: bluefish ()
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.