知识点回顾
1. 递归的案例
汉诺塔
谢尔斯宾基三角形
目录树
女神的自拍
2. 递归的实质
递归从原理上来说就是函数调用自身这么一个行为。
3. 编写递归程序需要注意的地方
递归程序需要正确设置结束条件,否则递归程序会一直走下去,直到崩溃。
4. 递归的优势和劣势
优势:递归的思考角度跟通常的迭代(你可以理解为 for 循环之类的)迥然不同,所以有时候使用迭代思维解决不了的问题,使用递归思维则一下子迎刃而解。
劣势:递归的执行效率通常比迭代低很多,所以递归程序要更消耗时间;由于递归函数是不断调用函数本身,在最底层的函数开始返回之前,程序都是一致在消耗栈空间的,所以递归程序要“吃”更多的内存空间;递归的结束条件设置非常重要,因为一旦设置错误,就容易导致程序万劫不复(崩溃)。




