学习完了算法,对其中的递归研究了一下,有些心得列举如下,尚有许多不足之处留待改进。
1、每个递归函数都必须有非递归定义的初始值,这个值通常作为参数传递。若出现其它类似计数的值,则该值为全局变量。
2、若操作数是基本数据类型,一般采用递减式递归,最终减至初始值;若操作数是数组,一般采用递增式递归,使下标从0增加到length-1。
3、结束条件可以有多个,按顺序列在递归语句前面。
4、一般递归函数都是用return返回一个值,否则将采用循环结构递归。
学习递归比较特殊,要从逻辑上进行分析,但是绝对不要去追踪实际的操作过程。
递归要点:
1、每一级的函数调用都有自己的变量。
2、每一次函数调用都会有一次返回。当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行。
3、递归函数中,位于递归调用前的语句和各级被调函数具有相同的执行顺序
4、递归函数中,位于递归调用后的语句的执行顺序和各个被调函数的顺序相反
5、虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。
6、递归函数中必须包含可以终止递归调用的语句。通常情况下,递归函数会使用一个if条件语句或其他类似的语句以便当函数到达某个特定值时结束递归调用。