码迷,mamicode.com
首页 > 其他好文 > 详细

递归和迭代(Recursion and Iteration)

时间:2014-07-30 00:18:22      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:style   使用   strong   io   for   问题   时间   line   

递归

特点:简而言之,递归就是应用程序调用自身。所以,存在预期收敛,才能使用递归(因为不能无限期递归调用下去)。

优点:程序看着比较简单,比较容易实现。

缺点:递归要占用额外的栈空间,如果递归的深度比较大,那么占用的栈比较多,而且调用函数的时间也比较多,时空性都不好

所以选择递归要考虑好处和缺点之间的权衡。

迭代

特点:通过步号寻找需要的信息,经典的例子比如C++中的for循环语句(迭代遍历程序)。

优点:开销只因循环的增加而相应增加,没有额外的空间开销和时间开销。

缺点:编写复杂问题时可能程序比较难以理解,不容易写。

 

 

递归和迭代往往可以相互转换,遇到问题是选择递归还是迭代,要综合考虑两者的优缺点权衡利弊,选择合适的方法。

 

递归和迭代(Recursion and Iteration),布布扣,bubuko.com

递归和迭代(Recursion and Iteration)

标签:style   使用   strong   io   for   问题   时间   line   

原文地址:http://www.cnblogs.com/Xylophone/p/3876416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!