2011-02-03 103 views
0

大小爲n = 100的算法需要21秒才能運行。大小n = 1000需要31秒,n = 10000需要41秒運行。運行的複雜性是什麼? (N)=(21 * 1000)/ 100 = 210 s(Not O(n))
如果我嘗試O(n^2)那麼:T(n) (n)=(21 * 1000^2)/ 100^2 = 2100 s(非O(n^2))
如果我嘗試O(log n),則:T(n)=(21 * log1000)/ log100 = 31.5(不是O(log n))
算法的時間複雜度

我給出的另一個選項是O(1/n)。我如何計算這個?

+1

*更多*大O作業瑪麗亞/安妮塔? – 2011-02-03 14:37:45

+0

是的,因爲你可以看到我試圖解決它,但無法找到如何計算O(1/n)。你能幫忙嗎? – Maria 2011-02-03 14:39:49

回答

6

看起來像一個O(lgn)

n的時間是T(n) = 10*log(n) + 1當日志的底部是10

1

通過從各種類繪製一些功能爲了解決這個問題的開端。例如,要了解O(n)線性類圖,函數T(n)=n並瞭解O(n^2)類的圖函數T(n)=n^2。這將幫助您識別各種功能的形狀。

之後,繪製問題中給定的點,其中x軸的n值和y軸的時間值。您應該能夠快速識別此問題中的形狀。

提示:這不是O(log n) :-)