确定.jar正在使用哪些排序算法?

时间:2015-03-19 02:05:03

标签: java sorting

如何在不能查看代码的情况下确定不同类型的排序算法?

场景是我们的讲师展示了一个.jar文件,里面有4个排序方法(sortA,sortB ...),我们可以调用它来对矢量进行排序。

因此,据我所知,我们只能衡量和比较各种类型的时间。什么是确定种类的最佳方法?

主要问题是,各种各样的时间不需要很长时间(相差约1000毫秒),所以比较它们并不是真正的选择,到目前为止所有的我使用过的数据集(升序,降序,近似排序)并没有给出排序时间的多少变化。

1 个答案:

答案 0 :(得分:0)

我会创建一个数据结构并执行以下操作:

  1. 使用已知的排序算法对纸张上的数据进行排序,并在纸上记录预期的行为。非常具体地了解每次通过后您的数据会发生什么。
  2. 在调试模式下运行测试并逐步完成排序过程。
  3. 观察元素的排序方式,并将其与步骤1中获得的预测(注释)进行比较。
  4. 我认为这应该有效。基本上,您使用Scientific Method来确定给定方法中使用的算法。这样,您不必通过反编译代码或依赖于使用执行时间等不精确的方法来“欺骗”。我概述的三步流程依赖于可靠的经验数据来得出您的结论。