我有两个C程序递归X^N算法的时间复杂度
其中输入的N应是任意整数2^N:N> = 1
一个是 -
int power(int x,int n)
{
if(n==2)
return x*x;
else
return power(x,n/2)*power(x,n/2);
}
int main()
{
int x=6;
int n=8;
printf("%d",power(x,n));
getch();
}
其他一个是 -
int power(int x,int n)
{
if(n==2)
return x*x;
else
{
int result=power(x,n/2);
return result*result;
}
}
int main()
{
int x=6;
int n=8;
printf("%d",power(x,n));
getch();
}
这是第一次复杂的功能将是─
因此,通过推导,我们将得到O(log n)
在过去的一个210
T(n)=2T(n/2)+c
将通过推导,我们将得到O(log n)
是正确的是─
T(n)=T(n/2)+c
因此?
为第一个'T(N)= O(n)的',和用于第二'T(N)= 0(log n)的' – svs
你怎么能解释一下? –
首先运行参数为'2,3'的函数,看看会发生什么,然后我会解释。您的基本情况应该是'n == 0' mate – svs