尾部调用

Posted g120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尾部调用相关的知识,希望对你有一定的参考价值。

在阮一峰大侠的ECMAScript 6 入门

了解到“尾递归”概念,拿到Java中一试吓一跳,对性能的提升不只是一星半点。

技术图片
public class BeanInfoDemo {
    public static void main(String[] args) {
        Fibonacci(50);
    }

    private static void Fibonacci(int n) {
        long t1 = System.currentTimeMillis();
        System.out.println("传统:" + FibonacciC(n));
        long t2 = System.currentTimeMillis();
        System.out.println("传统耗时:" + (t2 - t1));
        System.out.println("尾部:" + FibonacciNew(n, 1, 1));
        long t3 = System.currentTimeMillis();
        System.out.println("尾部耗时:" + (t3 - t2));
    }

    public static long FibonacciC(long n) {
        if (n <= 2) {
            return 1;
        }
        return FibonacciC(n - 1) + FibonacciC(n - 2);
    }

    public static long FibonacciNew(long n, long ac1, long ac2) {
        if (n <= 2) {
            return ac2;
        }
        return FibonacciNew(n - 1, ac2, ac1 + ac2);
    }

}
View Code

结果为:

传统:12586269025
传统耗时:30040
尾部:12586269025
尾部耗时:0

 

以上是关于尾部调用的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段中调用 getSupportFragmentManager()?

如何从片段 KOTLIN 中调用意图 [重复]

Thymeleaf 模板 引用头部 尾部 最简单教程

php怎样调用公共网页头部及尾部 ? 谢谢!

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

从片段调用 Google Play 游戏服务