依然记得当年大一刚接触递归那一脸蒙蔽的感觉,那时候就觉得这真是一个非常神奇的算法。不过通过我不断琢磨以及自己写个递归到IDE不断debug,我总算小有收获,下面主要给新手小白介绍一下我看的书籍对递归的讲解。个人觉得非常不错,值得记录。
首先我做个简单的总结:递归其实就是函数调用自己,那么可以这么认为
每次返回都是到执行这个递归函数的末尾处(刚从递归函数出来)。继续执行下面的函数体部分,执行完又返回上一个函数末尾处,不断如此知道最后完全退出为止。
再看看Mark Allen Weiss《数据结构和算法分析》一书中对递归的阐述:
递归和循环非常相似,所以必须有终止条件,而且条件是不断朝这个条件推进。有兴趣的可以看看下面我贴的 《C Primer Plus》
首先是《C Primer Plus》对递归的表述。