递归算法

递归算法

  A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己,因此我们在设计递归算法时,一定要指明什么时候自己不调用自己。否则,就是个死循环!

递归算法要点

  

递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。

利用递归可以用简单的程序来解决一些复杂的问题。比如:大多数排序使用的就是递归算法。

  

  递归结构包括两个部分:

      1.    定义递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环。

      2.    递归体。解答:什么时候需要调用自身方法。

/**
 * 测试递归算法
 * @author 尚学堂高淇www.bjsxt.cn
 *
 */
public class TestRecursion {
    static int a = 0;
    public static void test01(){
    a++;
    System.out.println("test01:"+a);
    if(a<=10){  //递归头
    test01();
    }else{      //递归体
    System.out.println("over");
    }
}
public static void test02(){
    System.out.println("TestRecursion.test02()");
}
public static long factorial(int n){
    if(n==1){
    return 1;
    }else{
    return n*factorial(n-1);
    }
}
public static void main(String[] args) {
    test01();
    System.out.println(factorial(10));  
    }
} 

  阶乘代码的调用执行过程

原文地址:https://www.cnblogs.com/zqy6666/p/12052769.html