void foo (int n, int val)
{
int b,c; //+1
for (int j = 4; j < n; j++) //n
{
for (int i = 0; i < j; i++) //n
{
b = b * val; // +1
for (int k = 0; k < n; ++k) // n
c = b + c;
}
}
}
我有上面的代码,当我尝试解决它时,我得到了T(n)的各种答案。从我的各种答案(n 3 -7n 2 +2)/ 2和((n 3 -5n 2 + 6n)/ 2)+ 2n - 6,我得出结论O(n)是O(n 3 )。我只需要找到正确的T(n)。
答案 0 :(得分:0)
现在是凌晨4点,所以也许我在胡说八道,但我认为是:
第一个是n-3次迭代
第二个是4 + 5 + 6 + 7 + ... + n-1次迭代=&gt; 1/2(n² - n - 12)
第三个是n次迭代
(n-3)*(1/2(n 2 -n-12))* n =&gt;的为O(n ^ 4)强>