我直观地知道,两个for循环构成一个O(n^2)函数,但如果这两个循环是不相关的呢?它是如何表达的
例如:
for(x = 1; x < t; x++)
for(y = 1; y < z; y++)
do something trivial
end
end
这是O(t*z)中的大O吗?或者它是O(n^2)还是O(t^2)。我一直忽略了这一点,但我现在想知道。
谢谢
发布于 2011-12-21 07:16:17
它是O(t*z)。如果您有两个嵌套循环,每个循环执行n次迭代,则由于n*n :)
就像计算面积一样..对于每个t,你迭代z次..所以它是直观的t*z..
或者你可以想象在循环中有一个计数器..结果会是多少呢?
发布于 2011-12-21 07:17:06
for(x = 1; x < t; x++)
for(y = 1; y < z; y++)
do something trivial
end
end
正如所写的,这些循环执行(t-1)*(z-1) = t*z - t - z + 1 times -> O(t*z)
发布于 2011-12-21 07:18:39
通常,两个相互之间的for循环是O(n^2),这是读取O n squared
。
https://stackoverflow.com/questions/8583211
复制相似问题