Почему не будет напечатана правильная медиана массива? - PullRequest
0 голосов
/ 03 марта 2019

Поскольку длина массива четна, мы должны добавить 12 + 8 = 20, а затем разделить это на два.20/2 = 10. Но почему он печатает 30 в консоли?Даже если я исключаю Arrays.sort(a);, он все равно печатает 30.

Он должен печатать 10. Что я делаю неправильно?

public static void solution(int[] a) {
    Arrays.sort(a);
    int median = 0;

    if(a.length % 2 != 0) {
        median = a[(a.length - 1) / 2];
    } else {
        median = (a[(a.length / 2)] + a[(a.length - 1 / 2) - 1]) / 2;
    } 
    System.out.println(median);
}

public static void main(String args[]) {
    int[] a = {5,9,8,12,19,48};
    solution(a);
}

1 Ответ

0 голосов
/ 03 марта 2019

должно быть median = (a[(a.length / 2) - 1] + a[(a.length / 2)]) / 2;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...