// First attempt at timing the sort algorithm, measuring the baseline time.
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
cout << "Baseline for timing the sort algorithm." << endl;
double* A, *B;
unsigned long N;
unsigned int reps;
cout << "Input array size and repetitions: ";
cin >> N >> reps;
A = new double[N];
B = new double[N];
srand(time(0));
for (unsigned int i = 0; i < N; ++i)
A[i] = (double)rand();
vector iterations;
iterations.reserve(reps);
time_t start, finish;
start = time(0);
while (iterations.size() < reps) {
int count = 0;
do {
++count;
copy(A, A + N, B);
// sort(B, B + N);
finish = time(0);
}
// Continue as long as clock hasn't ticked:
while (finish == start);
// Record the number of iterations:
iterations.push_back(count);
start = finish;
}
cout << "Iteration counts: " << endl;
unsigned int k;
for (k = 0; k < iterations.size(); ++k)
cout << iterations[k] << " ";
cout << endl;
cout << "Sorted iteration counts: " << endl;
sort(iterations.begin(), iterations.end());
for (k = 0; k < iterations.size(); ++k)
cout << iterations[k] << " ";
cout << endl;
cout << "Selected value: " << iterations[reps/2] << endl;
cout << "Time: " << 1000.0/iterations[reps/2]
<< " ms " << endl;
return 0;
}