Я написал программу на C ++ для сравнения различных алгоритмов сортировки, чтобы выяснить, какой из них самый быстрый. Тем не менее, я сталкиваюсь с некоторыми проблемами при выполнении моего кода.
Сначала я создал класс для синхронизации алгоритмов, используя конструктор и деструктор. Затем я использовал std::chrono::time_point_cast
для явного приведения времени к миллисекундам. Тем не менее, программа заканчивала тем, что показывала нулевые миллисекунды каждый раз, когда я запускаю свою программу.
Обратите внимание, что я включил файл заголовка хронографа.
Вот часть исходного кода программыкод.
Определение класса
int Array[20], size = 20;
class BenchmarkTimer
{
public:
std::chrono::time_point<std::chrono::high_resolution_clock> startpt;
float ms;
long long duration;
BenchmarkTimer() : ms(0), duration(0)
{
startpt = std::chrono::high_resolution_clock::now();
}
~BenchmarkTimer()
{
auto endpt = std::chrono::high_resolution_clock::now();
auto init = std::chrono::time_point_cast<std::chrono::milliseconds>(startpt).time_since_epoch().count();
auto final = std::chrono::time_point_cast<std::chrono::milliseconds>(endpt).time_since_epoch().count();
auto duration = final - init;
}
};
Функция сортировки выбора (это только один из многих алгоритмов сортировки).
void SelectionSort(int Array[])
{
BenchmarkTimer timer;
int temp, smallest, position, j;
for (int i = 0; i < size - 1; i++)
{
smallest = Array[i];
position = i;
for (j = i + 1; j < size; j++)
if (Array[j] < smallest)
{
smallest = Array[j];
position = j;
}
temp = Array[i];
Array[i] = Array[position];
Array[position] = temp;
}
DisplayArray(Array);
std::cout << "\nTime taken to sort the array: " << timer.duration << " ms" << std::endl;
}
Вызов функции DisplayArray(Array)
просто отображаетмассив на экране.
Я хочу, чтобы программа отображала количество прошедших миллисекунд.
Прямо сейчас фактический вывод:
Time taken to sort the array: 0 ms
Но яЯ хочу, чтобы вывод был:
Time taken to sort the array: 13 ms
(13 мс - это просто пример.)
Я бы предложил вам предложить более простые решения, так как я на промежуточном уровне программирования на C ++.
Заранее спасибо!