2014-09-13 53 views
0

我写了一个排序算法,我用C++实现了它。 如何比较其他排序算法的速度和性能? 我有足够的时间进行排序,但我没有找到任何资源有他们测试的数字(在其他算法中)以及时间!如何将我自己的排序算法与其他排序算法进行比较?

+0

尝试计算一个时间复杂性的界限。有一个定理说它不能比* O(N log N)*更好。此外,生成一个包含数百万个随机整数的文件,并测量排序它的时间(使用您的程序和STL库函数)。 – 2014-09-13 12:37:12

+3

首先,您最好了解算法背后的数学知识,包括平均,最佳和最差情况复杂度。然后,[基准](http://www.oreillynet.com/pub/a/software-engineering/excerpts/algorithms-in-nutshell/benchmarking.html)它们,如果正确完成,这是不重要的。 – WhozCraig 2014-09-13 12:39:28

+0

它工作正确,我有时间,但我需要时间和他们从其他算法测试的数字来比较它的数量。 – SnakeS 2014-09-13 12:44:25

回答

0

一个zip文件,其中包含几个排序代码示例以及来自我系统的计时和结果。 (混合排序,hsort.cpp消耗大量内存,不推荐使用。)。一些例子,如msortv.cpp,是转换的C程序,它使用指针而不是迭代器对矢量进行排序。

rsortv.zip

1

您可以从std STL排序算法进行比较开始。另外,你可以比较分拣的容器,例如的std ::设置。与其他语言/操作系统比较可能也很有趣 - 我比较了在Linux上使用STL排序STL向量与使用.NET和C#的Windows上的类似代码进行比较,C++的速度是随机向量的两倍。