Python递归函数分类 python递归函数详解( 二 )


为什么使用递归:
1 有时候使用递归写出来的程序很容易理解,很易读.
2 有些问题只有递归能够解决.非递归的方法无法实现.如:汉诺塔.
递归的条件:
并不是说所有的问题都可以使用递归解决,他必须的满足一定的条件 。即有一个出口点.也就是说当满足一定条件时,程序可以结束,从而完成递归调用 , 否则就陷入了无限的递归调用之中了.并且这个条件还要是可达到的.
递归有哪些优点:
易读,容易理解,代码一般比较短.
递归有哪些缺点:
占用内存资源多,费时,效率低下.
因此在我们写程序的时候不要轻易的使用递归 , 虽然他有他的优点,但是我们要在易读性和空间,效率上多做权衡.一般情况下我们还是使用非递归的方法解决问题.若一个算法非递归解法非常难于理解 。我们使用递归也未尝不可.如:二叉树的遍历算法.非递归的算法很难与理解.而相比递归算法就容易理解很多.
对于递归调用的问题,我们在前一段时间写图形学程序时,其中有一个四连同填充算法就是使用递归的方法 。结果当要填充的图形稍微大一些时,程序就自动关闭了.这不是一个人的问题,所有人写出来的都是这个问题.当时我们给与的解释就是堆栈溢出 。就多次递归调用占用太多的内存资源致使堆栈溢出,程序没有内存资源执行下去 , 从而被操作系统强制关闭了.这是一个真真切切的例子 。所以我们在使用递归的时候需要权衡再三.
Python 递归函数基例所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解 。
例如:斐波那契数列递归,f(n)
=
f(n-1)
+
f(n-2),基例是1和2,f(1)和f(2)结果都是1
再比如:汉诺塔递归,基例就是1个盘子的情况,只需移动一次,无需递归
递归必须有基例,否则就是无法退出的递归,不能求解 。
如何理解python中的递归函数递归式方法可以被用于解决很多Python递归函数分类的计算机科学问题,因此它是计算机科学中十分重要Python递归函数分类的一个概念 。
绝大多数编程语言支持函数的自调用 , 在这些语言中函数可以通过调用自身来进行递归 。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环 。
计算机科学家尼克劳斯·维尔特如此描述递归:
递归的强大之处在于它允许用户用有限的语句描述无限的对象 。因此,在计算机科学中,递归可以被用来描述无限步的运算,尽管描述运算的程序是有限的 。
python 2 递归函数和其它语言,基本没有差别,只是不支持尾递归 。无限递归最大值为固定的,但可以修改 。
作者:黄哥
Python递归函数分类的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于python递归函数详解、Python递归函数分类的信息别忘了在本站进行查找喔 。

推荐阅读