同一个排序算法对一组记录排序,为什么第二遍运行永远比第一遍快?

白帽天使 2019-10-05 01:15:09
下面是代码 #include "stdio.h" #include "time.h" #include "Sort.cpp" #ifndef CLOCK_(CODES,TIMES) #define CLOCK_(CODES,TIMES) {clock_t start,stop;start=clock();{CODES;}stop=clock(); TIMES=((double)(stop-start))/CLOCKS_PER_SEC;} #endif int main(){ int a[]={1,9,5,7,4,2,8,3,5,1,2,2,17,19}; int n=sizeof (a)/sizeof (int); double ggg; CLOCK_(BubbleSort(a,0,n-1),ggg); printf("%f\n",ggg); for (int i=0;i<n;i++)printf("%d\n",a[i]); int b[]={1,9,5,7,4,2,8,3,5,1,2,2,17,19}; CLOCK_(BubbleSort(b,0,n-1),ggg); for (int i=0;i<n;i++)printf("%d\n",a[i]); printf("%f\n",ggg); return 0; } 不管运行多少遍,调用同一个排序方法,第二次调用总比第一次调用排序时间短。这里是冒泡排序,其他排序方法也一样。 这是咋回事啊
...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2019-10-07
  • 打赏
  • 举报
回复
可能是处理器有做优化吧
gouyanfen 2019-10-06
  • 打赏
  • 举报
回复
这个要看模拟器的工作原理,你要测试这种,还是不要用模拟器好点
wowpH 2019-10-06
  • 打赏
  • 举报
回复
引用 2 楼 白帽天使 的回复:
[quote=引用 1 楼 wowpH的回复:]第一次要编译吧。。。
不是的。。我这是同一个源文件里调用了两次排序方法。。[/quote]建议数据规模加大点。
白帽天使 2019-10-06
  • 打赏
  • 举报
回复
引用 1 楼 wowpH的回复:
第一次要编译吧。。。
不是的。。我这是同一个源文件里调用了两次排序方法。。
wowpH 2019-10-05
  • 打赏
  • 举报
回复
第一次要编译吧。。。

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧