这是算法
#include<iostream>
#include<Windows.h>
#include<time.h>
using namespace std;
int main(){
int a[10]={12,3,5,2,7,80,10,1,16,30};
long ts,te;
srand(::GetTickCount());
ts=clock();
for (int i=0;i<10;i++){
for (int j=9;j>i;j--){
if (a[j]<a[j-1]){
int t=a[j];a[j]=a[j-1];a[j-1]=t;
}
}
}
te=clock();
cout<<" time elapsed "<<te-ts<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但我很惊讶,因为它给我零作为输出,我正在测量从代码开始到结束所经过的时间,以及为什么?我的计算机不是所谓的超级计算机,这个代码片段有什么问题?
除非你使用穿孔卡来编写你的程序,否则你不应该惊讶于排序10个数字需要少于一个滴答.如果您想要更准确的代码配置文件,请使用毫秒,这样可以让您更好地了解.
循环中最内层的指令运行100次 - 这与现在的低端处理器相比毫无意义.
编辑:我用100000个数字测试了代码,在for循环中进行了10 ^ 10次迭代,并且只花了3秒钟.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |