Ich bin gespannt, ob meine Standardabweichung Methode effizienter gemacht werden kann. Mit effizient meine ich schnell, und mit schnell meine ich die Latenz vom Methodenaufruf zur Methodenrückgabe.Kann meine Standardabweichungsberechnung effizienter gemacht werden?
Hier ist der Code:
public double stdDev(ArrayList<Double> input) {
double Nrecip = (1.0/(input.size()));
double sum = 0.0;
double average = 0.0;
for (Double input : inputs) {
average += input;
} average *= Nrecip;
for (Double input : inputs) {
sum += ((input - average)*(input - average));
} sum *= Nrecip;
return Math.sqrt(sum);
}
ich einen Rat schätzen würde.
Sie tun könnte 'Durchschnitt + = Nrecip * Eingang;', aber das wird nichts schneller –
machen Sie 'verwenden könnte double' statt' Double' und verwenden einen Bruchteil die Erinnerung. –
Berechne '(Eingabe - Durchschnitt)' nur einmal statt zweimal? –