递归算法重点:
递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
例如:我们要求6的阶乘
6的阶乘可以表示为6!=6 * 5 * 4 * 3 * 2 *1
public class Digui {
//利用代码计算5的乘阶
public static void main(String[] args) {
System.out.println(jieCheng(6));
}
//递归实现
public static int jieCheng(int n){
if (1 == n) {
return 1;
}else
return n * jieCheng(n - 1);//递归的核心实现
}
使用递归很大程度上可以是程序更加简单易读,但对嵌套层数深的一些算法,递归会力不从心,空间上会以内存崩溃而告终,而且递归也带来了大量的函数调用,这也有许多额外的时间开销。所以在深度大时,它就会占用大量的内存空间