递归深度
例题代码如下,书上说void Perm(T list[],int k,int m)这个函数的递归深度为m-1, 按这道题m进来时是2,递归深度变成1了是怎么回事,我计算了就是m=2,Perm这个函数也调用了10次.除了形参k限制递归次数以外,里面的for循环也增加了递归的次数。这个递归深度应该怎样理解?,不是函数的调用次数吗?
#include <iostream>
using namespace std;
template<class T>
void Perm(T list[],int k,int m)
{
int i;
if(k==m)
{
for(i=0;i<=m;i++)
cout<<list[i];
cout<<endl;
}
else
for(i=k;i<=m;i++)
{
swap(list[k],list[i]);
Perm(list,k+1,m);
swap(list[k],list[i]);
}
}
int main()
{
char a[]="abc";
Perm(a,0,2);
return 0;
}