我很好奇,如果我的標準偏差方法可以提高效率。通過高效率我的意思是快速,而且我的意思是指從方法調用到方法返回的延遲。我的標準偏差計算可以更有效嗎?
下面的代碼:
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);
}
我將不勝感激任何意見。
你可以做'平均+ = Nrecip *輸入;',但不會做什麼更快 –
你可以使用'double'代替Double'的'和使用的一小部分記憶。 –
計算'(輸入 - 平均值)'而不是兩次? –