【发布时间】:2014-08-13 20:12:50
【问题描述】:
我想对排序算法的速度做一个实证测试。最初我随机生成数据,但这似乎不公平并且搞砸了一些算法。例如,对于快速排序,枢轴选择很重要,选择枢轴的一种方法是始终选择第一个,另一种方法是选择第一个、最后一个和中间元素的中值。但是,如果数组已经是随机的,那么选择哪个枢轴并不重要,所以从这个意义上说,这是不公平的。你如何解决这个问题?
我在哪里可以获得用于测试排序算法的真实样本?我听说在实际场景中,数据通常是部分排序的,但是如何在排序算法中使用这些信息?
【问题讨论】:
-
向算法抛出一堆数据,看看它是如何反应的。考虑随机和退化的情况。 (虽然询问 哪里 获取此类数据是要求异地资源..)
-
将已排序的数据放入排序算法中始终是现实世界的可能性。
-
1) 发布它。 2)对它的性能提出一些古怪的说法。 3) 收集整理所有的批评意见。
-
@HotLicks 对于第 2 步,不要忘记在这些声明中包含“网络规模”。古怪固然不错,但含糊其辞同样重要。
-
@Celeritas 根本不会使算法失效,也不公平。将随机数据假设为 一个 输入集是完全合理的。
标签: java algorithm sorting data-analysis