递归的定义
一个函数直接调用自己或者间接调用自己
递归必须满足的三个条件
递归必须要有一个终止的条件
该函数处理数据的规模必须在递减
这个转化必须是可解的(数学上的问题)
递归和循环
递归:
在处理大规模问题的时候容易理解
速度慢
占用很大的控件
循环:
在处理大规模的问题不易理解
速度快比递归快
占用空间比递归少
什么时候用递归什么时候用循环
递归和循环的解题方法是两种完全不同的思路,如何把一个比较难的循环问题转换成递归实现是比较难的
至于在什么时候用递归什么时候用循环
可以参考一下 汉诺塔递归实现 汉诺塔循环实现 树用递归遍历 树用循环遍历
总结: 能用循环写出来的就用循环,循环很难实现的就使用递归。