0
我在java中有這個相互遞歸的代碼,我不知道這段代碼的時間複雜度是多少。我的猜測是O(2^n),因爲對於G方法,在每次調用期間,返回(n-1)+ G(n-1)分解爲2或者是這部分O(n)?我不確定這一點。這個互相遞歸的代碼的時間複雜度
public static int F(int n)
{
if (n <= 1)
return 1;
else if (n % 2 == 0)
return n + F(n/2);
else
return G(n-1)-n;
}
public static int G(int n)
{
if(n <= 1)
return 1;
else if (n % 2 == 0)
return F(n-1) + G(n-1);
else
return F(n-3);
}
它會更像(n!)嗎? – 2013-04-28 09:02:03