Это мой самый первый вопрос, и я тоже новичок в C ++, но я постараюсь быть максимально конкретным. Скажите, пожалуйста, если я слишком расплывчатый:
Я пытаюсь измерить время, необходимое для метода сортировки (сортировки слиянием) для сортировки заданного массива целых чисел с помощью chrono и duration_cast. Вот фрагмент кода, о котором идет речь:
auto t1 = std::chrono::high_resolution_clock::now();
mergesort(sortingArray, temp, 0, num - 1);
auto t2 = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> fp_ms = t2 - t1;
std::cout << fp_ms.count() << " seconds\n";
И результат, который я получаю, всегда равен «0 секунд», независимо от того, насколько большим я делаю массив, который нужно отсортировать. Даже когда он сортирует миллион целых чисел и есть заметное время выполнения, он все равно дает мне тот же результат.
Я в основном следую приведенному здесь примеру: http://en.cppreference.com/w/cpp/chrono/duration/duration_cast
Только вместо f () я использую свою функцию mergesort. Как я могу заставить его правильно измерить мой метод сортировки?
РЕДАКТИРОВАТЬ: я использую minGW для компиляции через Powershell в Windows 10. Команда выглядит так:
g++ -std=c++11 .\Merge.cpp
mergesort
Ваша собственная функция? Вы уверены, что он действительно сортирует массив? - person NathanOliver   schedule 28.04.2016mergesort
это моя собственная функция. Я распечатал отсортированный массив, чтобы убедиться, что он работает. - person Jonathan Skogeby   schedule 28.04.2016g++ -std=c++11 .\Merge.cpp
. - person Jonathan Skogeby   schedule 28.04.2016steady_clock
. - person Howard Hinnant   schedule 28.04.2016