有人可以帮我对以下代码进行运行时分析:
public static void f(int n)
{
for (int i = 0; i <= n; i++)
{
System.out.print("+" + i);
}
if (n <= 1)
{
return;
} else
{
f(n / 3);
f(n / 3);
}
}
据我说,代码递归公式的运行时间是:
T(n) = cn + 2T(n/3)
我认为答案应该是Θ(nlog(n))
,但书上的解决方案显示它是Θ(n)
。书中还说n = 3^k
为了简单起见。
有人可以向我解释正确的答案吗?