2014-09-13 5 views
0

정렬 알고리즘을 작성했으며 C++로 구현했습니다. 속도와 성능을 다른 정렬 알고리즘과 어떻게 비교할 수 있습니까? 나는 정렬하는데 걸리는 시간을 가지지 만, 다른 알고리즘으로 테스트 한 숫자와 시간도 가진 리소스를 찾지 못했습니다!어떻게 내 자신의 정렬 알고리즘을 다른 알고리즘과 비교할 수 있습니까?

+0

시간 복잡도를 계산해보십시오. * O (N log N) *보다 좋을 수 없다는 이론이 있습니다. 또한 수백만 개의 무작위 정수 파일을 생성하고이를 정렬 할 시간을 측정하십시오 (프로그램 및 STL 라이브러리 함수 사용). –

+3

우선, 평균, 최고 및 최악의 경우의 복잡성을 포함하여 알고리즘의 수학 지식을 더 잘 알고 있어야합니다. 그런 다음, [benchmark] (http://www.oreillynet.com/pub/a/software-engineering/excerpts/algorithms-in-nutshell/benchmarking.html), 올바르게 수행하면 아무 것도 아니지만 사소한 것입니다. – WhozCraig

+0

그것이 제대로 작동하고 시간이 있지만 다른 알고리즘에서 테스트 한 숫자와 시간이 필요합니다. – SnakeS

답변

0

내 시스템의 타이밍 및 결과와 함께 여러 가지 정렬 코드 예제가 포함 된 zip 파일. (하이브리드 정렬, hsort.cpp 엄청난 양의 메모리를 소모하므로 권장되지 않습니다.). msortv.cpp와 같은 일부 예제는 벡터를 정렬하기 위해 반복자 대신 포인터를 사용하는 변환 된 C 프로그램입니다.

rsortv.zip

1

std STL 정렬 알고리즘과 비교하여 시작할 수 있습니다. 또한 정렬 된 컨테이너와 비교할 수 있습니다. std :: set. 다른 언어/OS와 비교하는 것도 흥미로울 수 있습니다. STL을 사용하는 Linux의 STL 벡터를 .NET과 C#을 사용하는 Windows에서 유사한 코드로 정렬하는 것과 비교해 볼 때 C++은 무작위 추출 벡터에 비해 약 2 배 빠릅니다.

관련 문제