我试图了解如何精确计算时间复杂度

时间:2018-10-17 03:43:16

标签: algorithm time-complexity

我在练习时在网上发现了这个问题:

dir()

问题是d2r-server.bat kg_demo_movie_mapping.ttldef test1: limit = 2 x="a" for i in range(limit): for j in range(limit): print x def test2: limit = 2 x="a" for i in range(limit): print x for i in range(limit): print x 的时间复杂度是多少?我想两者的答案都是O(n²)。

如果限制为20或30,则test1的复杂度应为O(2n),与O(n)相同,而test2的复杂度是否正确?复杂度是O(n²)吗?

如果test2中的test1循环重复for次,其中test2,那么复杂度是多少?

1 个答案:

答案 0 :(得分:0)

首先,复杂性理论是一个值得研究的有趣领域,但是肯定不是猜测!!

首先,函数的复杂度是:test1 O(N^2)test1 O(N),但这肯定是在假设n = limit应该是具有一定范围值的变量的情况下,即{ {1}}。

通常,在复杂性理论中,我们考虑的变量不是常量,因为具有低值的常量不会影响您的代码(对运行时的影响不大)。

这应该回答您的最后一个问题,即当1 <= n <= 10^5时,然后当我们循环limit = n; n<=10^5时,它被认为是limit-1,因此总复杂度将始终保持不变。