Die Demo hier ist ein Akkumulationsalgorithmus wie 1,2,3,4 ... n
Das heißt: sum = 1+2+3+4...+n;
Wir können Folgendes tun:
for (long i = 1,v = value; i <= v; i++) {
Summe += i;
}
Rückgabesumme;
}
/**
* Implementierung des Akkumulationsalgorithmus<br>
*
* @Datum 16.04.2013
* @author hongten
*
*/
öffentliche Klasse AddArithmetic {
/**
* Schleife zur Implementierung der Akkumulationsmethode
* @param-Wert
* @zurückkehren
*/
privater statischer langer Zyklus (langer Wert) {
lange Summe = 0;
for (long i = 1,v = value; i <= v; i++) {
Summe += i;
}
Rückgabesumme;
}
/**
* Gaußsche Methode:<code>(n+1)*n/2</code><br>
* Weitere Informationen finden Sie <a href="http://zhidao.baidu.com/question/411055258.html">Hier</a>
* @param-Wert
* @zurückkehren
*/
private static long gaosi(long value) {
lange Summe = 0;
Summe = (Wert + 1) * Wert / 2;
Rückgabesumme;
}
public static void main(String[] args) {
// Bereinigen Sie den Speicher, aber er wird möglicherweise nicht ausgeführt.
System.gc();
// Sie sollten den Wert ändern, dann erhalten Sie unterschiedliche Ergebnisse
langer Wert = 10000000;
lange Summe = 0;
langer Start = System.currentTimeMillis();
Summe = Zyklus(Wert);
long end = System.currentTimeMillis();
System.out.println("Verwenden Sie die Schleifenakkumulationsmethode, um von [1] bis ["+Wert+"] zu akkumulieren, benötigte Zeit: ["+(Ende - Start) + "]ms, Ergebnis: "+ Summe);
// Bereinigen Sie den Speicher, aber er wird möglicherweise nicht ausgeführt.
System.gc();
start = System.currentTimeMillis();
sum = gaosi(value);
end = System.currentTimeMillis();
System.out.println("Verwenden Sie die Gaußsche Methode, um von [1] bis ["+Wert+"] zu akkumulieren, benötigte Zeit: ["+(Ende - Start) + "]ms, Ergebnis: "+ Summe);
}
}
Natürlich sind die Laufergebnisse von Maschinen mit unterschiedlichen Konfigurationen unterschiedlich ...
Der Betriebsstatus meiner Maschine: