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

白帽天使 白帽天使 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面是代码 #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; } 不管运行多少遍,调用同一个排序方法,第二次调用总比第一次调用排序时间短。这里是冒泡排序,其他排序方法也一样。 这是咋回事啊
...全文

相关推荐

记录排序算法运行时间(精确到微秒)和移动步数

在数据结构中学到的各种排序算法,做课设需要分析它们的运行时间,该代码可以将时间精确到微秒,解决了排序时间太短 造成clock()函数记录的时间是0的问题。附加各种排序算法移动步数的统计

海棠花开555

常用的排序算法总结(各种内部排序算法和外部排序算法)

现代常见的排序算法,易于理解,讲解详细,有源代码

Groovyxin

各种排序算法时间性能的比较

1、问题描述 对本章的各种排序方法(直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序和归并排序)的时间性能进行比较。 2、 基本要求 (1)设计并实现上述各种排序算法; (2)对正序和逆序的初始排列分别调用上述排序算法,并比较时间性能; (3)对随机产生的初始排列分别调用上述排序算法,并比较时间性能。 3、 设计思想 上述各种排序方法都是基于比较的内排序,其时间主要消耗在排序过程中进行的记录的比较和移动,因此,统计在相同数据状态下不同排序算法的比较次数和移动次数,即可实现比较各种排序算法的目的。 [思考题]如果测算每种排序算法所用的实际时间,应如何修改排序算法?

IT

各种排序算法的优缺点

冒泡排序 选择排序 插入排序 缩小增量排序 快速排序 箱排序

waterkiller

比快排还快的排序算法

我测试过在500000的范围内比一般的快排快,但是不知道增加数据大小后,两者的优劣(用的Pascal语言)

ROO7VIJOS
评论 5
收藏 已收藏
分享
返回顶部
白帽天使
C++ 语言 65,214 成员 250,514 内容