Baham's Blog

Above all else, guard your heart.

《Building Java Programs》-递归小结

递归(Recursion)是一种是一个方法调用本身的算法。一个方法若使用递归,那么它就是一个递归方法

递归方法包含两种情况:不用递归即可直接解决的基本情况(base case),以及需要使用递归调用简化问题的递归情况(recursive case)。

递归方法的调用通过在内部把每次调用的信息存储在一种叫做调用栈(call stack)的结构中来工作。当一个方法调用它本身时,关于这次调用的信息借置于调用栈的顶部。当一个方法调用结束时,程序将从调用栈中清除有关它的信息,并返回执行上一次调用。

一个递归方法如果没有基本情况,或它的递归情况不能合理的转化为基本情况,就会导致无穷递归的出现。

递归可以被用来绘制具有复杂特征的图形,包括分形图形。分形图形是具有相似特征的递归图形,通常被认为是“无限的复杂”。




The Original Link: http://baham.github.io/08_09_405.html
If you want to reprint it, please do under the CC BY-NC-SA 4.0

Comments