tid kompleksiteten av en algoritme

stemmer
0

En algorith med størrelse n = 100 tar 21 sekunder for å kjøre. Med størrelse n = 1,000 tar 31 sekunder, og med n = 10 000 tar 41 sekunder for å kjøre. Hva er den løpende kompleksitet?

Dersom jeg prøve O (n) Then: T (n) = (21 * 1000) / 100 = 210 s (Ikke O (n))
hvis jeg prøve O (n ^ 2) da: T (n) = (21 * 1000 ^ 2) / 100 ^ 2 = 2100 s (Ikke O (n ^ 2))
Dersom jeg prøve O (log n) da: T (n) = (21 * log1000) /log100=31.5 (Ikke O (log n ))

Det andre alternativet jeg får er O (1 / n). Hvordan beregner jeg dette?

Publisert på 03/02/2011 klokken 12:36
kilden bruker
På andre språk...                            


2 svar

stemmer
6

ser ut som en O(lgn).

Tiden for ner T(n) = 10*log(n) + 1da undersiden av stokken er 10.

Svarte 03/02/2011 kl. 12:40
kilden bruker

stemmer
1

For å løse dette problemet start ved å plotte enkelte funksjoner fra de ulike klassene. For eksempel for å lære om O(n)lineære klasse plottet til funksjonen T(n)=nog å lære om O(n^2)klasse plottet funksjonen T(n)=n^2. Dette vil hjelpe deg å gjenkjenne formen på de forskjellige funksjonene.

Etter det, plotte punktene gitt i dine spørsmål med verdiene av n i x-aksen og tidsbestemte verdiene på y-aksen. Du bør være i stand til raskt å gjenkjenne formen i dette spørsmålet.

Hint: Det er ikke O(log n) :-)

Svarte 03/02/2011 kl. 12:51
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more