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

白帽天使 2019-10-05 01:15:01
下面是代码 #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; } 不管运行多少遍,调用同一个排序方法,第二次调用总比第一次调用排序时间短。这里是冒泡排序,其他排序方法也一样。 这是咋回事啊
...全文
40 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
下载前必看:https://pan.quark.cn/s/a4b39357ea24 在本资料中,将阐述如何运用JavaScript达成单击下拉列表框选定选项后即时转向对应页面的功能。 此种技术适用于网页布局中用户需迅速选取并转向不同页面的情形,诸如网站导航栏或内容目录等场景。 达成此功能,能够显著改善用户交互体验,精简用户的操作流程。 我们须熟悉HTML里的`