Python递归
来源:互联网 发布:詹姆斯目前数据 编辑:程序博客网 时间:2024/04/30 17:08
每一个递归程序都遵循相同的基本步骤:
- 初始化算法。递归程序通常需要一个开始时使用的种子值(seed value)。要完成此任务,可以向函数传递参数,或者提供一个入口函数, 这个函数是非递归的,但可以为递归计算设置种子值。
- 检查要处理的当前值是否已经与基线条件相匹配。如果匹配,则进行处理并返回值。
- 使用更小的或更简单的子问题(或多个子问题)来重新定义答案。
- 对子问题运行算法。
- 将结果合并入答案的表达式。
- 返回结果。
以下是另一个可能更有利于理解递归过程的解释:
- 我们已经完成了吗?如果完成了,返回结果。如果没有这样的终止条件,递归将会永远地继续下去。
- 如果没有,则简化问题,解决较容易的问题,并将结果组装成原始问题的解决办法。然后返回该解决办法。
这样就有一种更有趣的描述:“为了理解递归,则必须首先理解递归。”或者更准确地,按照的解释:“如果你已经知道了什么是递归,只需记住答案。否则,找一个比你更接近侯世达的人;然后让他/她来告诉你什么是递归。”[1]
基线条件(base case)。基线条件是递归程序的最底层位置,在此位置时没有必要再进行操作,可以直接返回一个结果。所有递归程序都必须至少拥有一个基线条件,而且必须确保它们最终会达到某个基线条件;否则,程序将永远运行下去,直到程序缺少内存或者栈空间。
自己总结了一下,要写一个递归的程序,需要这样做:
1.一个基线条件。请在递归函数的一开始就处理这个基线条件。
2.一系列的规则,使对递归函数的每次调用都趋进于直至达到这个基线条件。
具体请点击:http://www.verydemo.com/demo_c122_i27837.html
0 0
- Python递归
- Python递归
- python递归
- Python | 递归
- Python 递归
- python 递归
- python 函数递归 尾递归
- Python 尾递归优化
- python递归遍历
- python 尾递归
- Python创建递归目录
- python学习~递归函数
- warning,Python 递归危险
- python 递归分析
- python递归生成器
- python尾递归
- Python递归深度
- 深入Python(5):递归
- REF 游标 (待填坑)
- Android真机测试访问本地服务器
- jquery td正中
- 连号区间算法(蓝桥杯)
- 软件测试
- Python递归
- 从php核心代码分析require和include的区别
- 软件测试目标
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- Java实现的HMM代码
- jQuery源码分析-06浏览器测试-Support
- 测试目标
- bootstrap设计网站中添加代码高亮插件
- ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作