我想用下面的代码测试一些排序算法的运行时间
int n = 2000;
for(int i=0; i<10; i++){
n *= 2;
init(array, n); // initializes array with n elements
long startTime = System.nanoTime();
sort(array;
long elapsedTime = System.nanoTime()-startTime;
System.out.println("Size: "+n+"\t\tTime: "+elapsedTime/1000000+"(ms)");
}
输出是
Size: 4000 Time: 0(ms)
Size: 8000 Time: 0(ms)
Size: 16000 Time: 0(ms)
Size: 32000 Time: 0(ms)
Size: 64000 Time: 0(ms)
Size: 128000 Time: 0(ms)
Size: 256000 Time: 0(ms)
Size: 512000 Time: 0(ms)
Size: 1024000 Time: 0(ms)
Size: 2048000 Time: 0(ms)
问题不在于算法,它正确地对数组进行排序,并且为大型数组完成这项工作需要相当长的时间。此示例运行大约需要 10 秒。我想我使用了 nanoTime(),就像 Java 文档中描述的那样。我搜索了这个问题的答案,似乎人们遇到了类似的问题。例如,这里 Java 中有秒表吗?. 但是,我找不到如何解决问题的答案。有人建议使用 apache 的 StopWatch,但据我了解,它使用了对 nanoTime() 的类似调用。那么,如何解决这个问题呢?如果它有所作为,我正在使用 jre 1.8.0_31 在 Windows 7 中运行代码。谢谢