2011-02-03 76 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) :-)