Решение соответствует условию. Подскажите в чем ошибка?
package com.javarush.task.task26.task2601;
/*
Почитать в инете про медиану выборки
*/
import java.util.*;
public class Solution {
public static void main(String[] args) {
Integer i1 = new Integer(1);
Integer i2 = new Integer(2);
Integer i3 = new Integer(3);
Integer i4 = new Integer(4);
Integer i5 = new Integer(5);
Integer i6 = new Integer(6);
Integer[] array = new Integer[6];
array[0] = i1;
array[1] = i2;
array[2] = i3;
array[3] = i4;
array[4] = i5;
array[5] = i6;
Solution.sort(array);
}
public static Integer[] sort(Integer[] array) {
//implement logic here
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array));
Collections.sort(list);
double middle;
if(list.size() % 2 == 0)
middle = ((double)list.get(list.size()/2)+ (double)list.get(list.size()/2)-1)/2;
else
middle = (double)list.get(list.size()/2);
//System.out.println(middle);
Comparator<Integer> comp = new Comparator<Integer>(){
public int compare(Integer o1, Integer o2) {
double diff1 = Math.abs((double)o1 - middle);
double diff2 = Math.abs((double)o2 - middle);
if ((diff1 - diff2) == 0)
return (int)((double)o1-(double)o2);
else
return (int)(diff1 - diff2);
}
};
Collections.sort(list, comp);
array = list.toArray(array);
/*
for (Integer i: array){
System.out.print(i+" ");
}
*/
return array;
}
}