以下是一个简单的递归函数。我已经使它的递归方程像这样
T(N)= KT(N-1)+1
我使用+ 1作为int i;我已经解决了这个问题
T(n)= kT(n-1)+1。 。 。 T(N)= K ^ MT(N-M)+ M
制作T(1) - > n-m = 1 - > M = N-1
变为(k ^ n-1)(n-1)
现在我的问题是,没关系。我期待它n ^ 2,但这似乎不是多项式。
void permute(int k,int size)
{
int i;
for (i=k-1;i>=0;i--)
permute(k-1,size);
return;
}
请帮我解决这个简短的问题
答案 0 :(得分:0)
设n =大小。然后
T(n,k)=k*T(n,k-1) + O(1)
=k*[(k-1)*T(n,k-2) + O(1)] + O(1)
=k*(k-1)*T(n,k-2) + k*O(1) + O(1)
=k*(k-1)*[(k-2)*T(n,k-3) + O(1)] + k*O(1) + O(1)
=k*(k-1)*(k-2)*T(n,k-3) + k*(k-1)*O(1) + k*O(1) + O(1)
=...
=O(k!)*T(n,0) + O(1) * [P(k,k-1)+P(k,k-2)+...+P(k,1)]
=O(k!)*T(n,0) + O(1) * e * O(k!)
=O(k!)*T(n,0)
所以它取决于置换的复杂性(0,大小)。