Tried using some custom input, it always returns the correct output
package com.codegym.task.task26.task2601;
/*
Read online about the median of a sample
*/
import java.util.*;
public class Solution {
public static void main(String[] args) {
/*Integer[] test = {13, 8, 15, 5, 17,2};
Integer[] testResult = sort(test);
for (Integer i : testResult) System.out.println(i);*/
}
public static Integer[] sort(Integer[] array) {
// Implement the logic here
//coppy Array to ArrayList
/*ArrayList<Integer> list = new ArrayList<>();
list.addAll(Arrays.asList(array));
Collections.sort(list);*/
Arrays.sort(array);
//find median
int median = 0;
if (array.length%2 == 0) median = (array[array.length/2] + array[array.length/2 + 1])/2;
else median = array[array.length/2];
final int MEDIAN = median;
//create Comparator
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return Math.abs(o1-MEDIAN) - Math.abs(o2 - MEDIAN) ;
}
};
Arrays.sort(array, comparator);
return array;
}
}