zoukankan      html  css  js  c++  java
  • python--递归函数讲解

    递归算法是一种直接或间接调用自身算法的过程。

    递归算法解决问题的特点:

    (1)递归就是在过程或函数里调用自身

    (2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

    (3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低,所以一般不提倡用递归算法设计程序。

    (4)在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储,递归次数过多容易造成栈溢出等。

    2、递归的要求

    递归算法所体现的“重复”一般有三个要求:

    (1)每次调用在规模上都有所缩小(通常是减半)

    (2)是相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出作为后一次的输入)

    (3)在问题的规模极小时必须用直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模位达到直接解答的大小为条件)无条件递归调用将会成为死循环而不能正常结束。

    实例:写函数,利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。

    1 def foo(depth, a1, a2):
    2     if depth == 10:
    3         return a1
    4     a3 = a1 + a2
    5     r = foo(depth + 1, a2, a3)
    6     return r
    7 
    8 ret = foo(1, 0, 1)
    9 print(ret)
    View Code
  • 相关阅读:
    dir for RequestHandler and request
    python globals和locals
    Spring AOP(通知、连接点、切点、切面)
    Elasticsearch和Head插件安装(转)
    服务发现
    全面的软件测试( 转)
    软件开发项目人员配置
    阿里云oss缩略图如何产生读取 超简单 不看后悔(转)
    Elasticsearch模糊查询
    小米Pro 安装苹果系统
  • 原文地址:https://www.cnblogs.com/june-L/p/11605415.html
Copyright © 2011-2022 走看看