フラグメントは次のとおりです。
sum1=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
sum1++
sum2=0
for(k=1;k<=n;k*=2)
for(j=1;j<=k;j++)
sum2++
以下が答えです。
2 つの割り当てステートメント – O(1) 各 1 番目のネストされたループ – O(n2) 2 番目のネストされたループ – O(n) コード フラグメントの実行時間の複雑さ = O(1) + O(n^2) + O(1) + O (n) = O(n2)
しかし、これが私がそれをどのように解決したかです:
2 つの割り当て:- O(1)。最初のネストされたループ: O(n*n)=O(n^2) 2 番目のネストされたループ:
外側のループは n 回実行されます。これで、内側のループが (1+2+3+.....+(n-1)+n) 回実行され、n(n+1)/2 =O(n ^2)
総実行時間 = O(n^2)+O(n^2)+O(1)=O(n^2)
そして、はい、いくつかの調査を行ったところ、次のことがわかりました。
ループでは、反復ごとにインデックスが増加する量だけジャンプする場合、シーケンスの複雑さはログ n になります。
その場合、2 番目のループの複雑さは (n-1)/2*logn になると思います...これは O(n*log n) に等しくなります。
O(n)..O(n^2) または O(nlogn)..
助けてください