c++关于递归与非递归

同样一个程序,什么时候用递归好,什么时候用非递归呀像Fibonacci斐波那契数列等这一类的程序,我发现当把一个数设定得比较大的时候,那非递归运算好像要快很多呀,是不是这... 同样一个程序,什么时候用递归好,什么时候用非递归呀
像Fibonacci斐波那契数列等这一类的程序,我发现当把一个数设定得比较大的时候,那非递归运算好像要快很多呀,是不是这样的啊
同一个程序,哪种运算速度快些?
展开
 我来答
DelRa
2008-11-30 · TA获得超过214个赞
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:170万
展开全部
调用函数是要付出一定开销的,比如上下文的保存与恢复,会不断有堆栈操作。所以会慢。。
递归就是不断地调用函数,只不过调用的是自己。
一般来讲,同一个算法的非递归程序一定不慢于递归程序。

适用环境嘛……这个不能明确划分。。。不如这样说吧~
能不用递归的时候都不用递归,也就是有非递归算法的时候尽量避免递归。

什么时候用递归呢?我想有这样几个吧~
1.算法有比较简单的逻辑,比如阶乘,再比如遍历树
2.不用递归就解不开的问题(这个解不开是指要花费不少多余的力气才能解开)
3.你不想让别人看懂你写的程序
4.你想炫耀你高超的编程技术
wwwhuyalong
2008-11-30 · 超过21用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:56.7万
展开全部
当写比较小的程序的时候 又可以用一般的语句表达的时候就不要用递归
但是用递归思路比较简单 用普通算法太过于复杂的时候就用 递归 没有明确的 规定 看情况 比较 复杂度和运算时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式