我必须运行程序一定的次数,并希望确定每次迭代完成所需的时间。我把它改成了一个较小的值来查看结果,但它显示了
0.002056
0.001183
0.000613
0.000922
0.000731
我有点不确定结果是否应该是这样的,因为它的开始大于结果的结束。这些结果看起来准确吗?还是我把计时器打到了一个奇怪的位置?
if (sorting_type == 1) {
for (int i = 0; i < 5; i++) {
auto timer1 = chrono::high_resolution_clock::now();
A->BubbleSort();
auto timer2 = chrono::high_resolution_clock::now();
chrono::duration<double, milli> duration_ms = timer2 - timer1;
cout << duration_ms.count() << endl;
}
}
您正在重复对同一组数据进行排序。这导致Bubble Sort在第一次迭代后花费的时间更少。如果你的数据以前是这样的:
[6,2,8,1]
这些步骤必须在第一次迭代中发生:
<->
[2,6,8,1]
<->
[2,6,8,1]
<->
[2,6,1,8]
<->
[2,6,1,8]
<->
[2,1,6,8]
<->
[2,1,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]
其他迭代都是这样的:
<->
[1,2,6,8]
<->
[1,2,6,8]
<->
[1,2,6,8]