简易记录下python与java、C计算斐波那契数耗时

  1. 简单比较了下python与java、C计算的耗时,忽略了编译器优化,javac和gcc都采用默认参数。python耗时比较大,比后两者长了两个数量级级别。java表现出来优于C,应该是编译优化的结果。
  2. python计算,耗时三十余秒
    1. 简易代码:
      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
      

  3. java计算
    1. 简易代码实现:
      1. 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);
        	}
        	
        }

    2. 运行结果
      1. 102334155  耗时:401

  4. C计算
    1. 简单代码实现
      1. #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);
        }

      2. 运行结果:

        1. 102334155耗时818 ms

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值