Cel*_*tas 2 java sorting algorithm data-analysis
我想对排序算法的速度做一个经验测试。最初我随机生成数据,但这似乎是不公平的,并且弄乱了一些算法。例如,对于快速排序,枢轴选择很重要,选择枢轴的一种方法是始终选择第一个,另一种方法是选择第一个、最后一个和中间元素的中值。但是如果数组已经是随机的,那么选择哪个主元并不重要,所以从这个意义上说这是不公平的。你如何解决这个问题?
我在哪里可以获得用于测试排序算法的真实样本?我听说在实际场景中数据通常是部分排序的,但是如何在排序算法中使用这些信息?
小智 5
为了测试排序算法的效率,通常使用多个数据集并分别计时。完全随机、部分排序、完全排序和排序但反向的数据通过相同的算法运行,以在每个字段中得出合适的平均值。这创造了最公平的测试环境。
虽然平均而言,有些算法比其他算法要好得多,但它们各自在解决方案中都有自己独特的用途。
虽然没有数值数据,但我所描述的过程可以在sort-algorithms.com上的一个有趣的动画中看到。