我在练习时在网上发现了这个问题:
dir()
问题是d2r-server.bat kg_demo_movie_mapping.ttl
和def 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
,那么复杂度是多少?
答案 0 :(得分:0)
首先,复杂性理论是一个值得研究的有趣领域,但是肯定不是猜测!!
首先,函数的复杂度是:test1 O(N^2)
和test1 O(N)
,但这肯定是在假设n = limit
应该是具有一定范围值的变量的情况下,即{ {1}}。
通常,在复杂性理论中,我们考虑的变量不是常量,因为具有低值的常量不会影响您的代码(对运行时的影响不大)。
这应该回答您的最后一个问题,即当1 <= n <= 10^5
时,然后当我们循环limit = n; n<=10^5
时,它被认为是limit-1
,因此总复杂度将始终保持不变。