首页 > Python > 小议python的迭代iterative和递归recursive
2016
03-31

小议python的迭代iterative和递归recursive

先说一下迭代和递归的定义,迭代:循环或者反复执行,由旧值递推出新值。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值

递归:程序在运行过程中直接或间接调用自己。需要有边界条件、递归前进段和递归返回段,当边界条件不满足时,递归前进;当边界条件满足时,递归返回

概念清晰的话就很容易分辨。下面说一下阶乘factorial中迭代iterative和递归recursive的区别

迭代:

依次把number = 0的结果返回,赋给product,递推出新值,再计算下一个number,运行过程如下

小议python的迭代iterative和递归recursive - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

小议python的迭代iterative和递归recursive - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

递归:

一个函数套着一个函数,一直调用自己,直到number=1, return 1后,再一层层返回来

小议python的迭代iterative和递归recursive - 第3张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

小议python的迭代iterative和递归recursive - 第4张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

我们可以测试一下运行的时间

$ python iterative.py
total time: 3.7670135498046875e-05

$ python recursive.py
total time: 0.00012040138244628906

看到时间,差距还是挺明显的

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

小议python的迭代iterative和递归recursive》有 2 条评论

  1. Pingback 引用通告: 利用python装饰器的类型检查 | linux工匠 关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优

  2. Pingback 引用通告: 利用python装饰器做类型检查 | linux工匠 关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优

留下一个回复

你的email不会被公开。