Я пытаюсь вычислить три квартиля (верхний, средний и нижний) массива в java (Android Studio), но с кодом ниже я получаю эту ошибку: java.lang.ArrayIndexOutOfBoundsException: length=1; index=-1
в строке № 9. Это из-за какой-то операции, которую я пытаюсь сделать с переменной длины, но ошибочно. Также, если у кого-то есть лучшее решение или совет, как рассчитать верхний, средний и нижний квартили в массиве java, это было бы очень полезно.
static double getLQ(double[] val) {
Arrays.sort(val);
int length = val.length;
double LQ = 0;
if(length % 2 != 0) {
LQ = val[length / 4] + val[length / 2 - 1] / 2;
} else {
LQ = val[length / 4];
}
return LQ;
}