我一直在摆弄一些排序算法并给它们计时,看看它们有多有效。为此,我创建了一个静态类,其中包含许多整数排序算法,以及另一个用于计时并将数据导出到 csv 的类。
我已经开始查看上述数据,并且注意到了一个有趣的趋势。我的程序创建了 5 个不同的随机数组进行测试,每个排序算法对每个数组进行 10 次不同试验的平均值。奇怪的是,对于一些算法,第一个数组的平均时间似乎要长得多,但对于其他算法则不然。以下是一些备份的示例数据: Dataset 1、Dataset 2和Dataset 3(时间以纳秒为单位)。
我不确定它是否与某些算法、我实现算法的方式、JVM 或其他一些因素的组合有关。有人知道这种类型的数据是如何发生的吗?
此外,所有这些的源代码都可以在此处获得。在“src”文件夹下查看。