【发布时间】:2021-02-15 04:37:02
【问题描述】:
有三个嵌套的 for 循环,如果循环递增 1,我可以找到复杂度,但如果循环像这样 i+=c 递增,我会感到困惑?
for (int i = 0; i < n; i+=c)
for (int j = 0; j < i; j++)
for (int k=0; k < m; k++)
result[i,j]= x[j]-y[k]
第三个 for 循环的复杂度是 m,但我认为第一个 for 循环是 n/c,第二个 for 循环是 n ==> 将范围相乘:n/c * n * m = n^2 /c * m ==> 最坏的情况是 O(n^2)。它是否正确? 如何使用求和形式求总迭代次数?
【问题讨论】:
-
什么是 m?是数组的长度吗?
-
对,m和n是两个不同数组的长度
标签: algorithm time-complexity big-o complexity-theory