美文网首页
从零开始复习Java-递归

从零开始复习Java-递归

作者: 姬空魂 | 来源:发表于2020-06-30 22:53 被阅读0次

递归

概念

甲方法调用乙方法,这是方法的调用。

甲方法调用甲方法,自己调用自己,这就是递归。

如下例,在test方法中循环调用test方法,一个递归的基础应用,会一直输出“hello barnes”

public String test(){
    System.out.println("hello barnes");
    test();
}

递归可以使用一些简单的程序来实现复杂的问题,它用规模较小的、与大问题相似的少量程序就可以描述出过程中所需要的多次重复计算,可以极大的减少代码量。给递归下一个定义,那就是用有限的语句定义对象的无限集合。

结构

递归结构分为2个部分,递归头和递归体,guitou。

递归头决定什么时候跳出循环,即不调用自身方法,如果没有该递归头,就会进入死循环

递归体决定什么时候需要调用自身方法。

使用递归实现阶乘:

public class Factorial{
    public static void main(String[] args){
        new Scanner = Scanner sc;
        System.out.println(fac(5));
    }
    
    public static int fac(int n){
        if(n == 1){
            return 1;
        }else{
            return n*fac(n-1);
        }
    }
}

代码量虽然减少,但对电脑来说要进行的工作量却变多,随着递归次数的增长,该方法的时间空间复杂度都是成指数上升的,可能Java栈直接溢出了,直接卡死或者崩溃。所以在实际的生产中,能不用递归尽量就不用递归。

相关文章

  • 从零开始复习Java-递归

    递归 概念 甲方法调用乙方法,这是方法的调用。 甲方法调用甲方法,自己调用自己,这就是递归。 如下例,在test方...

  • 从零开始复习Java-方法

    Java方法详解 今日杂谈 刚开始接触Java的时候,感觉方法就是c里的函数,后来发现它们虽然相似但又不尽相同。 ...

  • 从零开始复习Java-流程控制

    Java流程控制 这一篇我想谈一谈Java中学过的基础语法。从大一入学开始学C、C++,到现在大三下期,学了很多东...

  • 从零开始复习Java-运算符

    运算符 算术运算符 自增自减运算符 ++ -- 赋值运算符 关系运算符 逻辑运算符 位运算符 条件运算符(三元) ...

  • 从零开始复习Java-数据类型

    数据类型 强类型语言 要求变量的使用要严格符合规定,变量要先定义后才能使用 如 Java c 安全性好,处理速度慢...

  • 从零开始复习Java-变量、常量、作用域

    变量(Variable) Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 变量作用域 ...

  • Hello Java

    目录 Java-基础(1/6) Java-对象(2/6) Java-核心库类 上(3/6) Java-核心库类下(...

  • Java-浅析Object类

    Java-浅析Object类 ++2016.7.19++byside @Java-浅析Object类 ======...

  • Java-递归概念与实战

    本文主要介绍的递归算法。 首先我们看下百度百科对递归的基本概念:程序调用自身的编程技巧称为 递归( recursi...

  • JAVA-线程-一-执行器Executor

    2. JAVA-线程-二-ExecutorService 接口 3. JAVA-线程-三-AbstractExec...

网友评论

      本文标题:从零开始复习Java-递归

      本文链接:https://www.haomeiwen.com/subject/jnzfqktx.html