1. 递归的算法思想:
1) 原问题可分解子问题(必要条件);
2) 原问题与分解后的子问题相似(递归方程);
3) 分解次数有限(子问题有穷);
4) 最终问题可直接解决(递归边界);
2. 对于递归的应用与优化:直接递归时要预估时空复杂度,以免出现用时过长或者栈溢出。优化递归就是以不做重复的事儿为原则进行。
3. 递归和递推的区别:
1) 递归:将问题规模为n的问题,降解成若干个规模为n-1的问题,依次降解,直到问题规模可求,求出低阶规模的解,代入高阶问题中,直至求出规模为n的问题的解, ( n -> 0)。
2) 递推:构造低阶的规模(如规模为i,一般 i=0 ) 的问题,并求出解,推导出问题规模为i+1的问题以及解,依次推到规模为n的问题, (0 -> n)。