Может я не так понял задание? В ряд чисел отрицательные значения вообще могут быть переданы по условию?
{18, 4, 1, -5, 2, 7, 16, 15, 9, 0, -2, -9, -4, 20};
медиана 3.0
результат: 2 4 1 0 7 -2 9 -4 -5 15 -9 16 18 20
{13, 8, 15, 5, 17, 12, 10, 16}
медиана: 12.5
результат: 12 13 10 15 16 8 17 5
{13, 8, 15, 5, 17}
медиана: 13.0
результат: 13 15 17 8 5
package com.javarush.task.task26.task2601;
import java.util.Arrays;
/*
Почитать в инете про медиану выборки
*/
public class Solution {
public static void main(String[] args) {
/*
Integer[] inter = {18, 4, 1, -5, 2, 7, 16, 15, 9, 0, -2, -9, -4, 20};
for (Integer in : sort(inter)) {
System.out.print(in + " ");
}
*/
}
public static Integer[] sort(Integer[] array) {
Integer[] result = array.clone();
Arrays.sort(result);
double m = 0;
if (result.length%2!=0) {
m = result[result.length/2];
//System.out.println(m);
}
else {
double a = result[result.length / 2-1];
double b = result[result.length / 2];
m = (a+b)/2;
// System.out.println(a + " " + b + "\n" + m);
}
for (int i = 0; i < result.length; i++){
for (int k = 0; k < result.length; k++) {
int buff;
if (Math.abs(m-result[i]) < Math.abs(m-result[k])) {
buff = result[i];
result[i] = result[k];
result[k] = buff;
}
}
}
return result;
}
}