zoukankan      html  css  js  c++  java
  • 递归算法

    递归算法

      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));  
        }
    } 
    

      阶乘代码的调用执行过程

  • 相关阅读:
    JS中Text节点总结
    JS中Document节点总结
    HTML5 Geolocation位置信息定位总结
    HTML5form表单的相关知识总结
    HTML5文档的各个组成部分分类
    JS中Node节点总结
    vue.js指令总结
    javascript string对象方法总结
    php 接口文档自动生产方式
    python使用
  • 原文地址:https://www.cnblogs.com/zqy6666/p/12052769.html
Copyright © 2011-2022 走看看