就该函数的算术运算而言(就上限而言),时间成本是多少?
int foo(int n)
{
int i;
if (n <= 3) return 1;
else if (n > 333)
{
i = n/2;
return 3 * foo(i) + foo(i) + n * i;
}
else return foo(n - 3) + 9;
}
我试图分析它,这些是我的想法:
T(n) 是:
1; 如果 n ≤ 3 4T(n/2) + (n 2 )/2 ; 如果 n > 333 T(n-3) + 9 ; 否则
所以对于第二个等式,我可以说它是。
O((n2)/2 logn)
这是对的吗?