25_递归算法详解

来源:互联网 发布:数据质检过程 编辑:程序博客网 时间:2024/05/16 00:46

递归算法

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

递归算法要点:

递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
利用递归可以用简单的程序来解决一些复杂的问题。比如:大多数排序使用的就是递归算法。
递归结构包括两个部分:

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

/** * 测试递归算法 * @author  */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));      }} 
原创粉丝点击