簡體   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