- 简单比较了下python与java、C计算的耗时,忽略了编译器优化,javac和gcc都采用默认参数。python耗时比较大,比后两者长了两个数量级级别。java表现出来优于C,应该是编译优化的结果。
- python计算,耗时三十余秒
- 简易代码:
import time def fibonacci(n): if n <= 1: return n else: return fibonacci(n-1) + fibonacci(n-2) n = 40 start=time.time() y=fibonacci(n) print(str(y)+",耗时:%f"%(time.time()-start))
输出:
102334155,耗时:37.771169
- 简易代码:
- java计算
- 简易代码实现:
-
public class Blank { public static void main(String[] args) { long start=System.currentTimeMillis(); int y=fibona(40); System.out.println(y+" 耗时:"+(System.currentTimeMillis()-start)); } public static int fibona(int x) { if(x<=1) return x; else return fibona(x-1)+fibona(x-2); } }
-
- 运行结果
-
102334155 耗时:401
-
- 简易代码实现:
- C计算
- 简单代码实现
-
#include <stdio.h> #include <sys/time.h> int fibona(int x) { if(x<=1) return x; else return fibona(x-1)+fibona(x-2); } int main(){ struct timeval s; gettimeofday(&s,NULL); //printf("%d s %d us\n",s.tv_sec,s.tv_usec); int y=fibona(40); struct timeval e; gettimeofday(&e,NULL); //printf("%d s %d us\n",e.tv_sec,e.tv_usec); printf("%d耗时%d ms\n",y,(e.tv_sec-s.tv_sec)*1000+(e.tv_usec-s.tv_usec)/1000); }
-
运行结果:
-
102334155耗时818 ms
-
-
- 简单代码实现
08-17
2167
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)