递归算法经典实例python-Python实现经典递归算法

递归的定义

递归就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。

递归常与分治思想同时使用,能产生许多高校的算法。递归常用来解决结构相似的问题。所谓结构相似,是指构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。具体地,整个问题的解决,可以分为两部分:第一部分是一些特殊情况,有直接的解法;第二部分与原问题相似,但比原问题的规模小,并且依赖第一部分的结果。。实际上,递归是把一个不能或不好解决的大问题转化成一个或几个小问题,再把这些小问题进一步分解成更小的小问题,直至每个小问题都可以直接解决。因此,递归有两个基本要素:

(1) 边界条件:确定递归到何时终止,也称为递归出口。

(2) 递归模式:大问题是如何分解为小问题的,也称为递归体。

递归函数只有具备了这两个要素,才能在有限次计算后得出结果。

递归算法实例?

整数n的阶乘 ?

?阶乘的定义如下图:

sg_trans.gif

?用python实现以上求阶乘的算法:

sg_trans.gif

?运行结果:

sg_trans.gif

?斐波拉契数列

斐波拉契数列,是这样的一个数列:0、1、1、2、3、5、8、13、21、……。

斐波拉契数列的核心思想是: 从第三项起,每一项都等于前两项的和,即F(N) = F(N - 1) + F(N - 2) (N

>= 2) 并且规定F(0) = 0,F(1) = 1

利用递归算法获得指定项的斐波拉契数列。

sg_trans.gif

??运行结果:

sg_trans.gif

?

Reference :

http://blog.csdn.net/SeeTheWorld518/article/details/47957183

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值