fix off-by-one in ArrayUtil.averageAmongMedians

This commit is contained in:
peter
2017-03-13 15:34:42 +01:00
parent 5ed95eeff4
commit 24f51610eb
@@ -960,10 +960,12 @@ public class ArrayUtil extends ArrayUtilRt {
int n = time.length;
Arrays.sort(time);
long total = 0;
for (int i= n /2- n / part /2; i< n /2+ n / part /2; i++) {
int start = n / 2 - n / part / 2;
int end = n / 2 + n / part / 2;
for (int i = start; i < end; i++) {
total += time[i];
}
int middlePartLength = n / part;
int middlePartLength = end - start;
return middlePartLength == 0 ? 0 : total / middlePartLength;
}
@@ -972,10 +974,12 @@ public class ArrayUtil extends ArrayUtilRt {
int n = time.length;
Arrays.sort(time);
long total = 0;
for (int i= n /2- n / part /2; i< n /2+ n / part /2; i++) {
int start = n / 2 - n / part / 2;
int end = n / 2 + n / part / 2;
for (int i = start; i < end; i++) {
total += time[i];
}
int middlePartLength = n / part;
int middlePartLength = end - start;
return middlePartLength == 0 ? 0 : total / middlePartLength;
}