我需要一些帮助来理解分析递归算法。我很快就完成了这个算法,想知道复杂度是多少:
int FunctionExampple( A1, A2, ... An )
{
product = 1;
if( n == 2)
{
product = multi(A1, A2);
}
else
{
product = multi(A1, FunctionExample( A2, A3, ..., An ) );
}
return product;
}
现在假设函数 multi 需要 O(n^1.59) 时间,那么复杂度是多少?它会保持 O(n^1.59) 还是递归调用会使其 O(n^1.59 * n ) 来考虑递归调用的数量?多谢你们。
PS:我只是快速写了这个,语法和所有这些都无关紧要。