[英]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.