• Python24之递归和迭代


    一、递归的含义及一些用途

      递归就是函数通过return语句实现自己调用自己的过程,基本上所有的程序语言都有递归算法,常有人说(’一般程序员使用迭代,天才程序员使用递归‘),汉诺塔游戏、谢尔宾斯基三角形、斐波那契数列

    二、递归的深度和设定递归深度的函数

      Python3中针对递归提供了程序保护机制,默认允许的递归深度是100层,此时我们常常会使用超过100层的递归深度,这时我们就可以使用Python3的默认程序修改递归层数,该函数在sys模块里面的setrecursionlimit()函数进行设置,参数就是想要的层数,

      例:setrecursionlimit(250)

     1 def jiecheng(number):
     2     if number == 1:
     3         return 1
     4     else:
     5         return number*jiecheng(number-1)
     6 
     7 n = jiecheng(5)
     8 n
     9 120
    10 
    11 n = jiecheng(80)
    12 n
    13 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
    View Code

    三、递归和迭代的对比

    相同点:

      递归和迭代都是循环的一种

    不同点:

      递归是重复调用函数自身实现循环,会使代码变得精简且高效,但是递归时调用函数需要入栈出栈,对于内存和CPU的消耗比较大,递归是根据终止条件来结束递归

      迭代是函数内某段代码实现循环,而迭代是通过计数器来结束循环,当循环次数较大时,迭代的效率明显高于递归

  • 相关阅读:
    Java——static
    Java——package与import
    Java——方法重写
    Java——super
    Java——类的继承、访问控制
    Java——API文档
    Java——对象转型
    Java——动态绑定和多态
    Java——抽象类
    redis在linux上的安装和配置
  • 原文地址:https://www.cnblogs.com/ksht-wdyx/p/11342106.html
Copyright © 2020-2023  润新知