复杂性分析,回溯算法的
int caculate(int** array,int index,int bound,int sum)
{
if(index<bound-1)
{
int i = array[index][0];
for(int j =1;j<=i;++j)
{
int k = sum - array[index][j];
if( k>0 )
{
result[resultIndex] = array[index][j];
resultIndex++;
caculate(array,index+1,bound,k);
}
}
}
}
这么一个小程序,从主函数中传递index和bound,分别是数组的序数和上限,从N个数组中找出N个数,使其和等于sum。这么一个算法请问复杂性是多少?假设N个数组,每个数组有Ki个数,我分析结论是O(K1*K2*。。。。*Kn),但是,好像不对,呵呵,请帮帮忙。