繁体   English   中英

查找嵌套循环的计算复杂度

[英]Finding the computational complexity of nested loops

我不确定我是否正确地处理了这些问题,因此我需要有人告诉我我是否错了。

 for ( i = 0 ; i < n ; i ++ ) 

这是n-0 = n分配,它是O(g(n))对吗?

好吧,知道了,如果我想获得这些问题中的作业数量和O(g(n)):

 sum = 0;
 for ( i = 1 ; i < n * n ; j ++)
 {
    for ( j = 1 ; j <= n; j ++ )
    {
        sum += j;
    }
}

我所做的是,sum = 0是一个分配,外循环是n ^ 2-1-分配,内循环是n-1分配,最后总和是1分配

因此,分配数为2+(n ^ 3 + 1),得出O(g(n ^ 3))

在这个嵌套循环中:

 sum = 0;
 for ( i = 1 ; i <= n; i ++ )
 {
    for ( j = 1 ; j <= 100 ; j++) 
    {
        for ( k = 1 ; k <= n ; k ++ )
        {
            sum += k;
        }
    }
 }

我所做的是,sum = 0是1分配,然后第一个循环是1-n分配,第二个循环99是最后一个循环1-n,然后和= 2

所以我得到3+(1 + n ^ 2)项分配给我O(g(n ^ 2))

我刚做的事有什么问题吗?

您的计算是正确的。 唯一可能是-有时是O(g(n ^ 2))还是O(g( 99 * n ^ 2))很重要。 在大范围的N值上,乘数变得不再那么重要,但是在小范围内-迭代的99倍常数常数(当未由编译器优化时)可能很重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM