码迷,mamicode.com
首页 > 编程语言 > 详细

java基础---------递归和循环的使用效率

时间:2019-05-19 09:45:12      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:结束   参数   mem   时间   string   else   方法   stat   result   

package java基础;

/**
* 参数递归和迭代的效率,递归效率太低,如果用到递归一般使用循环
*/

public class TestRecursion {
public static void main(String[] args) {
     //标记递归方法开始执行事件
long d1=System.currentTimeMillis();
System.out.printf("%d阶乘结果:%s%n",10,factorial(10));
      //递归程序结束时间
long d2=System.currentTimeMillis();
System.out.printf("递归耗时:%s%n",d2-d1);//计算出递归使用的时间
factorialLoop(10);
}

//计算阶乘方法,递归就是方法自己调用自己
static long factorial(int a){

if(a==1){
return 1;
}
else {
return a*factorial(a-1);
}
}
//高性能一般使用循环,递归效率太低
static long factorialLoop(int b){
long d3=System.currentTimeMillis();
long result=1;
while (b>1){
result*=b*(b-1);
b=b-2;
}
long d4=System.currentTimeMillis();
System.out.println("循环阶乘结果"+result);
System.out.printf("递归耗时:%s%n",d4-d3);
return result;

}
}

执行结果:

10阶乘结果:3628800
递归耗时:25
循环阶乘结果3628800
递归耗时:0

java基础---------递归和循环的使用效率

标签:结束   参数   mem   时间   string   else   方法   stat   result   

原文地址:https://www.cnblogs.com/zzzao/p/10888102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!