请问一下递归的用法要注意什么??

dollyhao 2006-01-23 10:28:49
在运用递归的时候
我应该怎么想哦
感觉怎么都用不好他
谢谢了哦
...全文
332 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wofe_1999 2006-03-06
  • 打赏
  • 举报
回复
不要太用那个 次数多了就容易死机
  • 打赏
  • 举报
回复
wfront(超级无敌de肉粽)
要注意一定要留个出口.其它的就要注意一下时间复杂度或空间复杂度,某些算法(比如二叉树的遍历),在规模不大的情况下用递归不但编码方便,而且系统开销不大,但达到一定规模后用递归系统开销就很大了,这时要注意使用非递归的方法了.
----------------------------------------------
说得好,我最近写了一个递归计算滚动投资的算法,结果复杂度随着规模成几何增长。
计算n个月的循环次数=n!次,到了计算第13次的时候复杂度就已经过亿了。
所以,前几次还能计算出来,到后来基本上程序就不动了。
zawx 2006-01-27
  • 打赏
  • 举报
回复
呵呵,看来都说了,我就再复述一下好了.

就是有结束递归的条件和出口.
davisson2003 2006-01-27
  • 打赏
  • 举报
回复
其实递归说白了就是自己调用自己。比如说我们在求解一类问题时,发现这类问题的子问题的求解方法与问题求解方法一样,并且在有限次调用后可以终止,那么就可以利用递归求解
用好了很省事,但是一定要搞清楚递归终止条件,一般来说要求问题的规模逐渐减小,知道某一规模可以用简单方法(比如穷举)求解为止。还有就是严格保证递推关系成立
HomLao 2006-01-27
  • 打赏
  • 举报
回复
递归是个很高效的方法,假如你用得好的话.
关键先弄清楚终结条件和递推式.
zouxinfox 2006-01-27
  • 打赏
  • 举报
回复
调试递归程序真是恶梦!
sanhua99999 2006-01-23
  • 打赏
  • 举报
回复
递归就是函数中套函数,一直循环
wfront 2006-01-23
  • 打赏
  • 举报
回复
要注意一定要留个出口.其它的就要注意一下时间复杂度或空间复杂度,某些算法(比如二叉树的遍历),在规模不大的情况下用递归不但编码方便,而且系统开销不大,但达到一定规模后用递归系统开销就很大了,这时要注意使用非递归的方法了.
guodiming 2006-01-23
  • 打赏
  • 举报
回复
避免死循环最重要
leomay 2006-01-23
  • 打赏
  • 举报
回复
注意递归的结束条件比如求解n的阶乘
int factorial(int n)
{
if(n==1||n==0)
return 1;
else
return n*factorial(n-1);
}
这里的结束条件就是n==0或1的时候,但是递归效率极低,强烈建议不要使用
netstu 2006-01-23
  • 打赏
  • 举报
回复
避免自己测试程序的时候,机器给搞死掉:)
jragon 2006-01-23
  • 打赏
  • 举报
回复
递归的要保证递归条件的正确设置,避免死循环
anngogdo 2006-01-23
  • 打赏
  • 举报
回复
就是把50+50的问题变成1+1+1+1+.....的问题。
CalvinKyle 2006-01-23
  • 打赏
  • 举报
回复
先写好出口
acd123456 2006-01-23
  • 打赏
  • 举报
回复
最重要的一点

保证有结束条件且结束条件在机器能承受的范围内能够正常被执行
xjbs 2006-01-23
  • 打赏
  • 举报
回复
要保证退出,任何情况下都要能破圈
javalin3012 2006-01-23
  • 打赏
  • 举报
回复
套格式:

递归函数(参数){
if(递归结束式)...
else 递归函数(参数-步长)...
}

for(循控变量初始化;!递归结束式;循控变量-=步长){
递归函数(循控变量)
}

比较草、只是个意思。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧