我有代码生成 1-100 的随机数,并使用我在单独函数中已有的合并排序对它们进行排序。一切正常,但当我实现 clock();尝试获取运行时间,我总是得到零。我什至尝试过使用更大的数字,例如 10000,但耗时总是给我零。这是我的代码
int main() {
clock_t startTime;
clock_t endTime;
clock_t timePassed;
int array[100];
srand(time(NULL));
int n = sizeof(array) / sizeof(array[0]);
startTime = clock();
for (int j = 0; j < 100; j++)
{
array[j] = rand() % 100+1;
std::cout << array[j] << " ";
}
std::cout << "\n";
MergeSort(array, n);
std::cout << "After Merge Sort :" << std::endl;
PrintArray(array, n);
endTime = clock();
timePassed = ((endTime - startTime) / CLOCKS_PER_SEC);
std::cout << "\n" << timePassed;
}
return 0;
}
最佳答案
使用
double timePassed = (endTime - startTime) / static_cast<double>(CLOCKS_PER_SEC);
更高准确度的 B 计划:
#include <iostream>
#include <chrono>
// ...
auto start_time{ std::chrono::high_resolution_clock::now() };
// ... code you want to time
auto end_time{ std::chrono::high_resolution_clock::now() };
std::cout << std::chrono::duration_cast<std::chrono::seconds>(end_time - start_time).count() << ":";
std::cout << std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time).count() << ":";
// ...
关于c++ - 如何执行用c++编写的程序的运行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52241408/