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

Posted zzzao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础---------递归和循环的使用效率相关的知识,希望对你有一定的参考价值。

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基础---------递归和循环的使用效率的主要内容,如果未能解决你的问题,请参考以下文章

Python基础-----while循环练习

Java学习基础的第四天 for循环,Java语法中的方法,方法的重载,可变参数,递归,数组

Java实现三角形计数

python 基础11-递归

数据结构与算法 —— 递归的效率问题以及递归与循环的比较

python函数 之 提升Python效率之使用循环机制代替递归函数