QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

查看: 170|回复: 0

[C/C++/Qt] 测试C语言程序块的执行时间的方法

[复制链接]

等级头衔

积分成就    金币 : 2810
   泡泡 : 1516
   精华 : 6
   在线时间 : 1245 小时
   最后登录 : 2024-5-17

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2023-9-27 11:26:20 | 显示全部楼层 |阅读模式
在程序设计中,有些问题可能有不同地解决方法,对应的,也就编写出不同的程序。那么,如何衡量各个算法之间的好坏呢?每个算法的衡量需要综合很多方面,比如运行时间上,或者所占用内存空间上等。* ~) b1 S( F1 c4 l. ~
这篇笔记中,我们关注的是运行时间。对于运行时间(专业一点的词就是时间复杂度),通常我们可以粗略地通过循环体的循环次数来判断。, R; q7 g- m2 a2 x/ x: {" x
此处,我们通过一小段程序测试我们程序块的运行时间(Windows平台下)。测试代码如下:
/ n; l' o9 e2 m' ]1 }# q' s
  1. #include <stdio.h>
  2. #include <time.h>   // 用到clock()函数
  3. int main(void)
  4. {
  5.     int StartTime = 0, EndTime = 0;
  6.     int Sum = 0;
  7.     int i = 0;
  8.     StartTime = clock();        // 计时开始
  9.     /* Start--要测试地程序 */
  10.     for (i = 0; i < 100; i++)
  11.     {
  12.       printf("%d ", i);
  13.     }
  14.     /* End */
  15.     EndTime = clock();         // 计时结束
  16.     printf("\n\nRunning Time:%dms\n", EndTime-StartTime);
  17.     return0;
  18. }
程序执行结果为:
9 K. o' o3 r+ r 1.jpg

- Z% ^, a3 q/ ftime.h头文件里的clock()函数可获取当前的时间戳,我们在需要测试的程序块前后各获取一次时间戳,然后用后一次时间戳减去前一次时间戳就可得到该程序块的执行时间。当然,这也只是得到粗略的执行时间,因为只能精确到ms。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号 )

GMT+8, 2024-5-18 14:58

Powered by paopaomj X3.4 © 2016-2024 sitemap

快速回复 返回顶部 返回列表