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

白帽天使 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; } 不管运行多少遍,调用同一个排序方法,第二次调用总比第一次调用排序时间短。这里是冒泡排序,其他排序方法也一样。 这是咋回事啊
...全文
42 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
基于LOS算法+反步控制的水下航行器AUVUUV三维路径跟踪控制研究(Matlab代码实现)内容概要:本文研究基于LOS(Line-of-Sight)算法与反步控制相结合的水下航行器(AUV/UUV)三维路径跟踪控制方法,并提供了完整的Matlab代码实现。通过构建水下航行器的动力学模型,结合LOS导引策略实现路径跟踪,利用反步控制方法设计控制器以保证系统稳定性与跟踪精度,有效应对海洋环境中的外部干扰与模型不确定性。文中详细阐述了控制算法的设计过程、稳定性分析及仿真验证,展示了在复杂三维路径下的良好跟踪性能。; 适合人群:具备自动控制理论、非线性控制基础及Matlab/Simulink仿真能力的研究生、科研人员及从事水下机器人控制开发的工程技术人员。; 使用场景及目标:①用于水下无人航行器路径跟踪控制系统的算法设计与仿真验证;②学习LOS导引法与反步控制在非线性系统中的综合应用;③为海洋机器人运动控制、自动驾驶等领域提供技术参考与代码实现模板。; 阅读建议:建议结合控制理论基础知识,逐步理解LOS算法的几何原理与反步控制的递推设计思想,重点分析Lyapunov稳定性证明过程,并通过Matlab代码调试与仿真实验加深对算法性能的理解。

65,208

社区成员

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

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