(使用Java)适当的方法来计时排序算法需要多长时间
我正在测试排序数组以查看不同排序数组的速度有多快。我想清除错误的时间,所以理想情况下我想启动一个计时器,在100次循环中运行排序,停止计时器,然后除以100得到相当准确的度量。
的问题是如果我是循环中的同一个阵列,它会按正确的第一次,然后以后每个排序,它会保持排序已经排好序排列,这不是我想要的。
也许我缺少一个明显的解决方案,但有什么办法可以让它保持分类相同的初始随机排列?
我想过每一次重新分配新排序的数组回到初始随机排列,但会弄乱我的定时器..
感谢您的任何建议
我想做些什么:
startTime = System.nanoTime();
for(int i=0; i<cntr; i++) {
sort array
}
endTime = System.nanoTime();
time = (endTime - startTime)/cntr;
FYI,定时这样的事情准确与JIT非常棘手。使用[Caliper](http://code.google。com/p/caliper /)知道如何为你处理这个问题。 – 2012-03-05 03:41:09