그래서 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
}
있습니까? 내가 10000에서 rand()를 모자라는데 귀찮게해야합니까, 아니면 OCD 두뇌가 라운드 수를 좋아하는 것입니까? (즉, modulo 연산은 실제로 수행 할 때 고려해야 할 때 상당한 시간이 걸릴 수 있습니다. - 현재 10의 각 루프에 대해 10,000 개). 또는 실행 할 때마다 새 벡터를 실제로 만들어야합니까? 종류? 나는 생성 된 벡터가 편향되어있을 가능성이 있다고 생각했기 때문에 그렇게 해왔습니다. 그래서 그 중 하나가 생성되어 10 번 사용 되었다면 그 답은 꽤 꺼져있을 수도 있습니다 ...
나는 모듈로는 난수 생성에 비해 관련 상상할 수 없습니다. 그러나 그것을 테스트하는 것은 쉽습니다. 단지 그것을 제거하고 측정하십시오. (테스트 릴리스 빌드를 수행합니까?) – sbi
정렬 알고리즘 * 실제로 * 임의의 데이터를 좋아합니다. * 실제 * 데이터를 사용하여 정확한 벤치 마크를 작성하지 않습니다. –
@Hans Passant 미리 만들어진 실제 데이터를 어디서 찾을 수 있는지 보여 줄 수 있습니까? 왜냐하면 내가 진짜 * 데이터를 생성하는 방법을 고려할 때 어디에서 시작해야할지 모르겠다 ... 특히 얼마나 많은 다른 유형이 있는지 상상해보십시오. (매우 선전하고 매우 혼란 스럽습니다.) 더 일반적 일 것입니다 ... – Stephen