算法学习之路--尾递归

引言

递归是一种强大的方法,允许一个问题已其自身越来越小的形式来定义自己。在计算机科学领域中,我们通常使用递归函数来解决带有递归性质的问题,也就是函数调用自身。
而什么是尾递归呢?
尾递归是递归的一种形式,他将所有递归形式的调用都显示在函数的末尾。当递归调用的是整个函数体最后执行的语句,且返回值不属于表达式的一部分时,这个递归调用就是尾递归。
尾递归的特点是在回归阶段不用做任何操作,这个特性十分的重要,现代的编译器会利用这种特点自动生成优化的代码。所以,我们在开发的过程中,如果使用了递归,应该尽量考虑是不是能够转换成更优秀的尾递归。


实战

下面以阶乘为例,演示普通递归和尾递归的不同。
首先来看普通递归:
#include

最后的最后

我来瞎扯两句,现在 3/5/2015 ,想想也快升大二了,自己的 code 功力还是那么弱,想想都无颜见江东父老。
anyway 从现在到以后,都要好好学习天天向上来着。~\(≧▽≦)/~

posted @ 2015-05-23 16:23  verain  阅读(115)  评论(0编辑  收藏  举报