算法:五步教你消除递归
摘要:
背景递归对于分析问题比较有优势,但是基于递归的实现效率就不高了,而且因为函数栈大小的限制,递归的层次也有限制。本文给出一种通用的消除递归的步骤,这样您可以在分析阶段采用递归思想,而实现阶段采用非递归算法。函数的调用过程函数的调用是基于栈,每次调用都涉及如下操作:调用开始时:将返回地址和局部变量入栈。调用结束时:出栈并将返回到入栈时的返回地址。使用堆中分配的栈消除递归递归版本代码 1 public static int Triangle(int n) 2 { 3 // 地址:2 4 if (n == 1) 5 ... 阅读全文
posted @ 2013-12-22 14:05 幸福框架 阅读(9526) 评论(6) 推荐(5) 编辑