2010-12-05 45 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)。但是仍然有可能產生非常大的輸入並且基本上保持恆定的時間。我很想知道你的結果。