public class TestFib {
public static void main(String[] args) {
long n = 100l;
long t1 = System.currentTimeMillis();
long r1 = fib(n);
long t2 = System.currentTimeMillis();
//n到达一定大小之后,等待时间漫长到无法忍受,可能万物终点?
System.out.println("结果是: " + r1 + ", 耗时: " + (t2 - t1) + "MS");
//无论n多大,几乎都是0MS
long t3 = System.currentTimeMillis();
long r2 = fib2(n);
long t4 = System.currentTimeMillis();
System.out.println("结果是: " + r2 + ", 耗时: " + (t4 - t3) + "MS");
}
/**
* 普通方法:冗余计算次数过多,使其运算效率极低
* @param n
* @return
*/
public static long fib(long n) {
if(n==0l) {
return 0l;
} else if(n==1l) {
return 1l;
} else {
return fib(n-1) + fib(n-2);
}
}
/**
* 优化后的方法:基本无冗余计算,速度极快
* copy from Elminster in the forum of Java in Javaeye
* @param n
* @return
*/
public static long fib2(long n) {
long[] results = new long[(int)(n+1)];
for (long i = 0; i < results.length; i++) {
if(i==0l) {
results[(int)i] = 0l;
} else if(i==1l) {
results[(int)i] = 1l;
} else {
results[(int)i] = results[(int)(i-1l)] + results[(int)(i-2l)];
}
}
return results[(int)n];
}
}
抄来一个例子:关于代码优化,斐波那契数列为例
最新推荐文章于 2025-11-27 17:11:16 发布
本文通过两个不同实现方式对比展示了如何高效地计算斐波那契数列。一种是递归方法,虽然简单但计算效率低下;另一种是迭代方法,通过缓存中间结果避免了重复计算,大幅提升了计算速度。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Stable-Diffusion-3.5
图片生成
Stable-Diffusion
Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率
1105

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



