大数组求均值

给定一个数组,数组内每个元素大小不定且相加可能溢出,求数组平均数.

盈余法:

  • 先假定一个数f (f应尽量接近要求的平均数).
  • 用数组里每个元素减去f 所得数为m.
  • sum += m;
  • 若数组长度为n 则 avg = (nf +sum) / n;
  • avg = f+ sum/n;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class  {
public static void main(int number[]){
Arrays.sort(number);
int sum = 0;
int m = 0;
int f = number[number.length / 2];
for(int i : number){
m = i - f;
sum += m;
}
int avg = f + sum/number.length;
return avg;
}
}