由于数组的偶数长度,我们必须加12 + 8 = 20,然后除以2。 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);
}
答案 0 :(得分:1)
应为median = (a[(a.length / 2) - 1] + a[(a.length / 2)]) / 2;