【问题标题】:How to find the complexity of this nested for loop?如何找到这个嵌套 for 循环的复杂性?
【发布时间】:2019-04-06 23:07:08
【问题描述】:

我对这个for 循环有点困惑。给定一个数字 n,我们必须找出指令执行的次数。

int j = 0;
for(int p = 0; p < n*n; p++ )
{
    for(int q = 0; q < p; q++ )
    {
        j++;
    }
}

我的答案是O(n^4)。这个答案正确吗?

【问题讨论】:

    标签: java algorithm for-loop time-complexity


    【解决方案1】:

    您可以编写时间复杂度的相关 sigma T(n) = sum_{p = 1}{n^2} sum_{q=1}{p} (1) = sum_{p=1}{n^2} (p) = 1 + 2 + 3 + ... + n^2 = n^2(n^2 + 1)/2 = Theta(n^4)。所以,你的答案是正确的说明的数量。

    【讨论】:

    • 你确定吗?内部 for 循环不会被固定执行 n 次,但 q

    • @AlbertoPoljak 检查方程式。这有什么问题吗?
    • 那是我感到困惑的事情,因为如果它更小或相等,我会确定它是 O(n^4)。
    • @Indriti 没有任何区别!指令的计数是问题。所以,p0 到小于n^2,有n^2 号!注意pq是从0开始的。
    • 谢谢,非常有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多