600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > C语言:计算程序运行时间

C语言:计算程序运行时间

时间:2021-08-13 13:43:24

相关推荐

C语言:计算程序运行时间

使用Linux系统调用

该调用获取从1970年1月1号到现在经过的时间和时区(UTC时间), 可以参考Linux手册(精度最高)

#include <stdio.h>#include <sys/time.h>int main(int argc, char *argv[]){struct timeval start_time, end_time;double timeuse;gettimeofday(&start_time, NULL); // 开始时间/* 中间这里写要测试的函数 */printf("测试时间\n");gettimeofday(&end_time, NULL); // 结束时间timeuse = (start_time.tv_sec - end_time.tv_sec) +(double)(start_time.tv_usec - end_time.tv_usec) / 1000000.0;printf("%lf\n", timeuse);return 0;}

gettimeofday()时区一般不用了, 直接传入NULL就可以了

使用C库函数(自己用的就是这种)

本意是想测试一下 写的程序的时间复杂度,但是样本太小,根本没用

C库函数,所需头文件ctime/time.h,该函数可以跨平台使用.

返回类型为clock_t 实际为long.clock() 函数,返回从 开启这个程序进程 到 程序中调用clock()函数 时之间的CPU时钟计时单元(clock tick)数(挂钟时间),返回单位是毫秒可以用常量CLOCKS_PER_SEC, 这个常量表示每一秒(per second)有多少个时钟计时单元

#include <stdio.h>#include <time.h>int main(int argc, char **argv) {clock_t start_time, end_time; start_time = clock(); // 开始时间/* 这里写要测试的函数 */end_time = clock(); // 结束时间/* 计算得出程序运行时间, 并将其输出到屏幕 */printf("%lf ", (double)(end_time - start_time) / CLOCKS_PER_SEC);return 0;}

自己写了个测试用例 ...

0.000s 反正留个纪念

#include <stdio.h>#include <time.h>#define max 5void find(int a[],int n){for(int i=0;i<max;i++){for(int j=i+1;j<max;j++){if(a[i]+a[j]==n){printf("%d %d = %d\n",a[i],a[j],n);}}}}int main(){int n;int a[max]={1,2,3,4,5};scanf("%d",&n);clock_t start_time,end_time;start_time=clock();find(a,n);end_time=clock();printf("used time : %lfs\n",(double)(end_time-start_time)/CLOCKS_PER_SEC);return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。