您当前的位置: 首页 > 

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C基础:程序执行时间的计算方法的三种方式

发布时间:2020-10-31 09:25:25 ,浏览量:0

这篇文章介绍一下在C或者C++中计算程序执行时间的三种常见方法。

目录
  • 方式1: time + difftime
  • 方式2: clock + CLOCKS_PER_SEC
  • 方式3: timeb+ftime
  • 总结

这篇文章主要介绍三种计算执行时间的方式。

方式1: time + difftime

使用time.h标准库中的time和difftime函数可以返回记录的两次time_t结构的时间之间的差值,这种方式只能精确到秒级,代码示例如下:

#include  #include  int fibonacci(int n) { if(n == 0 || n == 1) return 1; return fibonacci(n-1) + fibonacci(n-2); } int main() { int n = 0; while(~scanf("%d",&n)) { time_t start_time=0, end_time=0; time(&start_time); printf("fibonacci(%d)=%d\n",n,fibonacci(n)); time(&end_time); printf("Time Used: %f\n",difftime(end_time,start_time)); } return 0; } 
  • 执行结果如下
45
fibonacci(45)=1836311903
Time Used: 9.000000
方式2: clock + CLOCKS_PER_SEC

另外利用clock函数代替time函数也能起到相同作用,这种方式通过计算两个clock函数之间的时钟单元来实现,代码示例如下:

#include  #include  int fibonacci(int n) { if(n == 0 || n == 1) return 1; return fibonacci(n-1) + fibonacci(n-2); } int main() { int n = 0; while(~scanf("%d",&n)) { time_t start_time=0, end_time=0; start_time=clock(); printf("fibonacci(%d)=%d\n",n,fibonacci(n)); end_time=clock(); printf("Time Used: %f\n",(double)(end_time-start_time)/CLOCKS_PER_SEC); } return 0; } 
  • 执行结果如下
45
fibonacci(45)=1836311903
Time Used: 8.715660
方式3: timeb+ftime

另外利用clock函数代替time函数也能起到相同作用,这种方式通过计算两个clock函数之间的时钟单元来实现,代码示例如下:

#include  #include  #include  int fibonacci(int n) { if(n == 0 || n == 1) return 1; return fibonacci(n-1) + fibonacci(n-2); } int main() { int n = 0; while(~scanf("%d",&n)) { struct timeb start_time, end_time; memset(&start_time,0,sizeof(struct timeb)); memset(&start_time,0,sizeof(struct timeb)); ftime(&start_time); printf("fibonacci(%d)=%d\n",n,fibonacci(n)); ftime(&end_time); printf("Time Used: %d.%d\n",end_time.time-start_time.time,end_time.millitm-start_time.millitm); } return 0; } 
  • 执行结果如下
45
fibonacci(45)=1836311903
Time Used: 8.621
总结

这篇文章主要介绍了三种计算执行时间的方式。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3649s