尾部调用
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); } }
结果为:
传统:12586269025 传统耗时:30040 尾部:12586269025 尾部耗时:0
以上是关于尾部调用的主要内容,如果未能解决你的问题,请参考以下文章
如何从片段中调用 getSupportFragmentManager()?