摘要: 警惕递归 递归是一种解决复杂问题的有效算法,函数通过简化问题求解过程,将被简化的问题再交给一个或多个与自己完成一样的函数,从而让程序解决这个问题。比如说汉诺塔问题。 递归算法思路清晰,编成代码简单优美,缺点是会消耗不少的栈空间,甚至有时候会带来额外的开销。递归所对应的另一种算法是迭代(也就是循环),相应的,迭代的优点是效率高,但是程序可读性方面没有递归好。大部分递归都可以方便的用迭代来取代,因此我建议如果递归不是很复杂,还是用循环来替代。 我们用最简单常见的阶乘算法和斐波纳契数列来说明:阶乘递归程序:long factorial(int n){static int time = 0; //fo 阅读全文
posted @ 2008-09-10 16:26 MXi4oyu 阅读(204) 评论(0) 推荐(0) 编辑