#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
#include <chrono>
using namespace std;
class Timer
{
using clock_t = std::chrono::high_resolution_clock;
using second_t = std::chrono::duration<double, std::ratio<1>>;
std::chrono::time_point<clock_t> start_time = clock_t::now();
public:
void elapsed()
{
std::chrono::time_point<clock_t> end_time = clock_t::now();
cout << std::chrono::duration_cast<second_t>(end_time - start_time).count() << endl;
}
};
int main()
{
random_device rnd_device;
mt19937 mersenne_engine{ rnd_device() };
vector<int> vec(100000);
for (unsigned int i = 0; i < vec.size(); ++i)
vec[i] = i;
std::shuffle(begin(vec), end(vec), mersenne_engine);
/*for (auto &e : vec)
cout << e << " ";
cout << endl;*/
Timer timer;
std::sort(begin(vec), end(vec));
timer.elapsed();
/*for (auto &e : vec)
cout << e << " ";
cout << endl;*/
return 0;
}
우리가 디버그 모드로 돌릴때와 릴리즈 모드로 돌릴 때의 속도는 다르므로, 실제 시간을 측정하고 싶다면 릴리즈 모드로 돌려 측정하는 것이 좋다. 적어도 3번을 돌려본 다음 시간을 측정하는 것이 올바른 방법이다.