2010-12-05 18 views
-1

什么是用Java计算时间的正确代码 public static int getGcd(int a,int b,int temp)格式?在我的java程序中添加运行时间

+4

`getGcd()`?这听起来是数学的,而不是按时间顺序排列的... – 2010-12-05 05:25:14

回答

2

一个简单的办法:

首先,抓住并存储到时候你开始一段代码,你想要的运行时间之前:

long start =System.currentTimeMillis();

您跟踪抢码后当前时间并从您的出发点减去以获得总时间:
System.out.println(System.currentTimeMillis() - start);

0

如果运行得相对较快,y ou're试图通过在一堆随机输入运行它得到一个平均时间,使用方法:

long totalTime = 0; 
long start = System.nanoTime(); 
for(int i=0;i<n;i++){ 
    //Generate a and b 
    getGcd(a, b); 
} 
long end = System.nanoTime(); 
totalTime = end - start; 
start = System.nanoTime(); 
for (int i=0;i<n;i++){ 
    //Generate a and b 
} 
end = System.nanoTime(); 
totalTime -= end - start; 
return totalTime/n; 

这让您在纳秒的平均时间。

找到GCD的平均运行时间是一个非常有趣和复杂的问题。在最坏的情况下,输入有一个接近中间值的比率(例如连续的斐波那契数),然后运行时间是O(log n)。但是仍然有可能产生非常大的输入并且基本上保持恒定的时间。我很想知道你的结果。