アルゴリズムクラスを受講していて、試験の勉強をしています...残念ながら..ネストされたループの時間分析の背後にある概念を理解できません
このコードには3つのループがあります
for (i=1->n)
for (j=1->i)
for (k=1->i)
x=x+1;
答えを理解する方法がわかりません:sどんな答えでも大いに役立ちますありがとうフォーク:)
アルゴリズムクラスを受講していて、試験の勉強をしています...残念ながら..ネストされたループの時間分析の背後にある概念を理解できません
このコードには3つのループがあります
for (i=1->n)
for (j=1->i)
for (k=1->i)
x=x+1;
答えを理解する方法がわかりません:sどんな答えでも大いに役立ちますありがとうフォーク:)
ループを合計する必要があります。計算する必要があるのは複数のシグマだけです。
内側のシグマの1は、最も内側のループ内で行っていることの複雑さです。
の場合i=1
、k-loop が 1 回実行され、j-loop が 1 回実行されます。合計=1.1=1 回の
場合i=2
、k-loop が 2 回、j-loop が 2 回実行されます。合計=2.2=4 回の
場合i=3
、k-loop が 3 回、j-loop が 3 回実行されます。合計=3.3=9 回の
場合i=n
、k ループが n 回実行され、j ループが n 回実行されます。合計=nn=n^2回
したがって、アルゴリズムの時間計算量は O(1+2^2+3^2+...n^2)=O(n(n+1)(2n+1)/6) =O(n^3) です。