递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。
递归算法解决问题的特点:
1)递归就是方法里调用自身。
2) 在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。
3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
4)在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。
阶层的递归算法
public class TraditionalThread {
public static long factorial(int n){
if(n == 1){//递归头
return 1;
}else{//递归体
return n*factorial(n-1);
}
}
public static void main(String[] args) {
long num = factorial(10);
System.out.println(num);
}