美文网首页
Java--递归-2

Java--递归-2

作者: 李赫尔南 | 来源:发表于2022-08-02 08:26 被阅读0次

递归的缺陷
  简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。
  比如上面的递归耗时558ms.但是用普通循环的话快得多,如示例所示。
【示例】使用循环求n!

public class Test{
    public static void main (String [] args){
        long d3 = System.currentTimeMillis();
        int a = 10;
        int result = 1;
        while (a> 1) {
            result  *=  a * (a - 1);
            a -= 2;
        }
        long d4 = System.currentTimeMillis();
        System.out.println(result);
        System.out.printf("普通循环费时:%s%n", d4 - d3);
    }
}

输出: 3628800
   普通循环费时:0

注意事项
  任何能用递归解决的问题也能使用迭代解决。当递归方法可以更加自然地反映问题,并且易于理解和调试,并且不强调效率问题时,可以采用递归
  在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存。

相关文章

  • Java--递归-2

    递归的缺陷  简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比...

  • Java--递归算法

    递归不是循环,是方法的调用循环是正常执行的,循环是只产生一个方法空间;递归调用时会产生很多一样的临时空间,消耗内存...

  • Java--递归-1

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

  • Java--对象-2

    对象引用  “每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元...

  • Java--方法-2

    注意事项1.实参的数目、数据类型和次序必须和所调用的方法声明的形式参数列表匹配。2.return 语句终止方法的运...

  • Eclipse 开发基本配置与快捷键

    自动提示Window -->> Preferences -->> Java-->> Editor-->> Cont...

  • 归并排序

    1. 递归实现 2. 非递归实现

  • 17.二分查找

    1.非递归实现 2.递归实现

  • 浅实现一下,Array.flatten(Infinity)的降维

    1. 使用for循环+递归 2. reduce + 递归

  • 数据结构-树的遍历

    1. 先序遍历 递归实现 非递归实现 2. 中序遍历 递归实现 非递归实现 3. 后序遍历 递归实现 非递归实现 ...

网友评论

      本文标题:Java--递归-2

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