Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 我试图理解时间复杂度是如何精确计算的_Algorithm_Time Complexity - Fatal编程技术网

Algorithm 我试图理解时间复杂度是如何精确计算的

Algorithm 我试图理解时间复杂度是如何精确计算的,algorithm,time-complexity,Algorithm,Time Complexity,我在网上练习时发现了这个问题: def test1: 极限=2 x=“a” 对于范围内的i(限制): 对于范围内的j(极限): 打印x def测试2: 极限=2 x=“a” 对于范围内的i(限制): 打印x 对于范围内的i(限制): 打印x 问题是test1和test2的时间复杂度是多少?我想两者的答案都是O(n²) 如果限制是20或30,那么test2的复杂度将是O(2n),这与O(n)相同,并且test1的复杂度将是O(n²)是否正确 如果test2中的for循环重复limit-1次,其中

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

def test1:
极限=2
x=“a”
对于范围内的i(限制):
对于范围内的j(极限):
打印x
def测试2:
极限=2
x=“a”
对于范围内的i(限制):
打印x
对于范围内的i(限制):
打印x
问题是
test1
test2
的时间复杂度是多少?我想两者的答案都是O(n²)

如果限制是20或30,那么
test2
的复杂度将是O(2n),这与O(n)相同,并且
test1
的复杂度将是O(n²)是否正确


如果
test2
中的
for
循环重复
limit-1
次,其中
limit=n
,那么复杂性又是什么呢?

首先,复杂性理论是一个非常有趣的研究领域,但肯定不是关于猜测的


首先,函数的复杂性是:
test1o(N^2)
test1o(N)
,但这肯定是在假设
N=limit
这应该是一个具有特定值范围的变量时,即
1假设
N=limit
,第一个是O(N^2),第二个是O(N),而不管限制如何。如果limit=
n-1
,则数学也不会改变。我强烈建议你阅读教科书或参考资料,了解如何计算大O符号,我认为你并不真正理解时间复杂性是关于增加输入大小对算法的总体影响
test1
在相同的输入上有一个嵌套循环,因此增加输入将增加
n
迭代。这对算法有指数效应,尤其是二次效应。第二种方法在同一输入上使用两个非嵌套的循环。然而,增加
limit
并不会改变迭代的大小,所以它只是O(n)。