从数学的角度来看,斐波那契数列的求解比较简单,(类似于1,1,2,3,5....),但是从算法和计算的时间复杂度上看不同的算法效率相差很大的,比如说其中的迭代和递归两种不同的求解算法。
下面以一段代码为例解释让我们看看差距有多大。简单的通过时间来观察。细微的差距可以自己体会。
package lab1;
import java.util.Date;
import java.util.Scanner;
public class Fbnq {
//迭代方法对斐波那契数列求解
public static int fbnq_dd(int n){
int a[]=new int[n+1];
a[0]=0;a[1]=1;int result=0;
if(n==1) return 1;
for(int i=2;i<n+1;i++){
a[i]=a[i-1]+a[i-2];
result=a[n];
}
return result;
}
public static int dd_int_compare(){
int m=1;int n=1;int q=2;//0,1,1,2,3,5,8
int count=3;
while(n<q){
m=n;
n=q;
q=m+n;
count++;
}
return count;
}
public static int dd_long_compare(){
long m=1;long n=1;long q=2;//0,1,1,2,3,5,8
int count=3;
while(n<q){
m=n;
n=q;
q=m+n;
count++;
}
return count;

本文探讨了斐波那契数列的几种不同求解算法,包括迭代和递归方法,并通过代码示例展示了它们在计算时间和效率上的差异。通过实验,读者可以了解到迭代方法相对于递归在计算大量斐波那契数时的优势。
最低0.47元/天 解锁文章

819

被折叠的 条评论
为什么被折叠?



