そのため、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 に制限することを気にする必要がありますか、それとも私の OCD 脳がラウンド数を好むだけですか? (つまり、モジュロ演算は、10 のループごとに最大で - 現在 - 10,000 まで実行されていると考えると、実際にはかなりの時間がかかっている可能性があります。) または、実行するたびに新しいベクトルを本当に作成する必要があります選別?作成されたベクトルが偏っている可能性があると感じたため、そうしてきました。そのベクトルを生成してから10回使用すると、答えがかなりずれてしまう可能性があります...