» »

časovna zahtevnost algoritma

časovna zahtevnost algoritma

majster123 ::

Zdravo. Ali je ta zahtevnost reda O(n)^2 ali O(n)? Hvala za odgovore :)
for(int i = 0; i<n; i++)
{ 
for(int j= 0; j<i; j++)

{
x++;
}
}
  • zaklenil: Mavrik ()

black ice ::

Imaš dve zanki eno znotraj druge. Si prepričan, da je O(n) sploh opcija?

tx-z ::

O(n*logn) ?
tx-z

black ice ::

Zanki sta vgnezdeni. O(n)^2, zakaj je tako je lepo razloženo na spodnji povezavi.
http://stackoverflow.com/questions/5267...

tx-z ::

Aa, ja, ni n*logn ampak O(1/2(n*(n+1)))->to se pa potem pretvori v O(n^2)

Sicer bo hitrej delal kot navaden n^2 ampak zahtevnost bo še vedno enaka.

(zaradi j je manšjši od i v drugi for zanki)

majster123 ::

hvala za odgovore (:

majster123 ::

Malo sem tuhtal in mi ne gre v glavo kako dobiti 1/2 :) A ni preprosto n*n?

joze67 ::

Če si predstavljaš, kaj ti dve zanki delata ... gresta skozi elemente n*n tabele. S tem da pogledaš samo elemente, ki imajo drugo koordinato (y) manj od prve (i). Torej dobiš zgornji desni trikotnik matrike:






oxx...x
oox...x
ooo...x
...
ooo...o


Torej nisi pogledal n elementov na diagonali, od ostalih n*n-n=n(n-1) pa si pogledal natanko polovico (enega od dveh trikotnikov). Torej si pogledal n(n-1)/2 elementov.

majster123 ::

thanks.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

časovna kompleksnost-razlaga

Oddelek: Programiranje
132300 (1545) aaa1
»

enojno povezan seznam -izpis nazaj

Oddelek: Programiranje
243318 (2858) Randomness
»

C++, časovna zahtevnost

Oddelek: Programiranje
51664 (1533) ERGY
»

Grafi (Kruskal, Dijkstra,...)

Oddelek: Programiranje
92272 (2155) Realist
»

Išče se hiter algoritem za izračun ene čudne matrične operacije.

Oddelek: Znanost in tehnologija
172121 (1612) Thomas

Več podobnih tem