2010-12-05 3 views
-1

Quel est le code correct pour calculer l'heure en Java avec public statique int getGcd (int un, int b, int temp) format?ajouter l'exécution sur mon programme Java

+4

'getGcd()'? Cela semble mathématique, pas chronologique ... –

+0

Voulez-vous le temps qu'il faut pour calculer GCD? Votre question n'est pas claire. –

+0

duplicata possible de [J'ai besoin d'aide dans mon programme] (http://stackoverflow.com/questions/4362739/i-need-help-in-my-program) –

Répondre

2

Une solution simple:

D'abord, saisir et stocker le temps avant que vous démarrez le morceau de code que vous voulez que le temps d'exécution pour:

long start =System.currentTimeMillis();

Une fois le code que vous suivez grab l'heure et la soustrait du point de départ pour obtenir le temps total écoulé:
System.out.println(System.currentTimeMillis() - start);

0

Si elle fonctionne relativement rapide et y ous êtes en essayant d'obtenir un temps moyen en exécutant sur un tas d'entrées aléatoires, utilisez:

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; 

Cela vous donne votre temps moyen en nanosecondes. Trouver le temps moyen d'exécution de GCD est un problème très intéressant et complexe. Dans le pire des cas, les entrées ont un rapport proche de la moyenne dorée (comme les nombres consécutifs de Fibonacci) et ensuite le temps d'exécution est O (log n). Mais il est toujours possible d'avoir des entrées extrêmement importantes et de se retrouver avec un temps essentiellement constant. Je serais curieux de connaître vos résultats.

Questions connexes