我很好奇,如果我的标准偏差方法可以提高效率。通过高效率我的意思是快速,而且我的意思是指从方法调用到方法返回的延迟。我的标准偏差计算可以更有效吗?
下面的代码:
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'的'和使用的一小部分记忆。 –
计算'(输入 - 平均值)'而不是两次? –