| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:递归深度
取消只看楼主 加入收藏
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
结帖率:96.25%
收藏
已结贴  问题点数:20 回复次数:1 
递归深度
例题代码如下,书上说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;
}
搜索更多相关主题的帖子: 递归深度 
2009-08-15 18:34
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
收藏
得分:0 
是不是应该理解成如果递归条件是n<0时结束,就认为该函数的递归深度为n-1,无论中间调用了多少这个函数。

[ 本帖最后由 mfkblue 于 2009-8-17 21:47 编辑 ]
2009-08-17 21:46
快速回复:递归深度
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018399 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved