【发布时间】:2014-11-15 06:27:58
【问题描述】:
我正在尝试获取插入排序算法的运行时间。 MSDN说使用CTime可以得到Elapsed Time。但我试了很多次,总是零。我认为运行这个算法的时间不可能为零。一定有一些错误或其他东西。有人可以帮助我吗?我在下面发布了我的代码:
#include <cstdlib>
#include <iostream>
#include <atltime.h>
using namespace std;
//member function
void insertion_sort(int arr[], int length);
int *create_array(int arrSize);
int main() {
//Create random array
int arraySize=100;
int *randomArray=new int[arraySize];
int s;
for (s=0;s<arraySize;s++){
randomArray[s]=(rand()%99)+1;
}
CTime startTime = CTime::GetCurrentTime();
int iter;
for (iter=0;iter<1000;iter++){
insertion_sort(randomArray,arraySize);
}
CTime endTime = CTime::GetCurrentTime();
CTimeSpan elapsedTime = endTime - startTime;
double nTMSeconds = elapsedTime.GetTotalSeconds()*1000;
cout<<nTMSeconds;
return 0;
}//end of main
【问题讨论】:
-
CTime的分辨率为一秒。显然,您的整个测试只需要不到一秒钟的时间。
标签: c++ ctime elapsedtime