Big O表記を使用してforループの複雑さを理解しようとしています。以前に他のクラスでこれを行ったことがありますが、これは実際のアルゴリズムに基づいているため、他のクラスよりも厳密です。コードは次のとおりです。
for(i=n ; i>1 ; i/=2) //for any size n
{
for(j = 1; j < i; j++)
{
x+=a
}
}
命令 x+=a は合計 n + n/2 + n/4 + ... + 1 回実行されます。
開始項 n と公比 1/2 を持つ GP の最初の log2n 項の合計は、(n (1-(1/2)log2n))/(1/2) です。したがって、最初のコード フラグメントの複雑さは O(n) です。
正しい ?