您现在的位置:首页 --> 查看专题: 尾递归
在命令式编程中,我们解决一些问题往往可以使用循环来代替递归,这样便不会因为数据规模造成堆栈溢出。但是在函数式编程中,要实现“循环”的唯一方法便是“递归”,因此尾递归和CPS对于函数式编程的意义非常重大。了解尾递归,对于编程思维也有很大帮助,因此大家不妨多加思考和练习,让这样的方式为自己所用。
以前我也在博客上简单谈过“尾递归”及其优化方式方面的话题。前几天有同学在写邮件向我提问,说是否所有的递归算法都能改写为尾递归,改写成尾递归之后,是否在时间和空间复杂度方面都能有所提高?他以斐波那契数列为例,似乎的确是这样的情况。我当时的回答有些简单,后来细想之后似乎感觉有点问题,而在仔细操作之后发现事情并没有理论上那么简单,因此还是计划写篇文章来讨论下这方面的问题。 斐波那契数列 大家对于斐波那契数列(Fibonacci)的认识一定十分统一,唯一的区别可能仅在于n是从0开始还是从1开始算起。
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[351] WordPress插件开发 -- 在插件使用 -
[152] 解决 nginx 反向代理网页首尾出现神秘字 -
[96] IOS安全–浅谈关于IOS加固的几种方法 -
[53] Hacker News 排名算法工作原理 -
[51] cookie窃取和session劫持 -
[48] 到底什么是MVC? -
[47] 二维码的生成细节和原理 -
[47] 程序员技术练级攻略 -
[47] Shell的那些事儿 -
[47] 浅谈MySQL索引背后的数据结构及算法
赞助商广告