所以,我只是在玩用 C++ 实现一些排序算法,但我发现目前对它们进行基准测试很烦人,因为不运行算法而是创建输入数据需要很长时间。我目前测试每个输入长度(1000、2000,...)10 次,以获得稍微平均的时间。对于这 10 次中的每一次,我vector
通过执行以下操作创建一个正确长度的新随机数:
// Each of the 10 times.
for(int j = 0; j < 10; j++) {
A.clear();
// 'i' is the current input size.
for(int k = 0; k < i; k++) {
A.push_back(rand() % 10000);
}
// Other stuff
}
有一个更好的方法吗?我是否应该费心将 rand() 限制在 10000,或者这只是我的强迫症大脑喜欢整数?(即,当您认为模运算实际上执行到 - 目前 - 10 的每个循环为 10,000 时,该模运算实际上是否会花费大量时间。)或者,我是否真的应该在每次运行时创建一个新向量种类?我一直这样做是因为我觉得创建的向量可能有偏差,所以如果生成了那个向量然后使用了 10 次,那么答案可能会很不准确......