-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
60 lines (45 loc) · 2.25 KB
/
Copy pathSolution.java
File metadata and controls
60 lines (45 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//Nathanael said to him, "Can any good thing come out of Nazareth?" Philip said to him, "Come and see." (John 1:46)
package com.javarush.task.task26.task2601;
/*
Почитать в инете про медиану выборки
*/
import java.util.Arrays;
import java.util.Comparator;
public class Solution {
public static void main(String[] args) {
}
public static Integer[] sort(Integer[] array) {
final double mediana; //implement logic here
int mid = array.length / 2;
Arrays.sort(array);
if (array.length % 2 != 0) {
mediana = array[mid];
} else {
mediana = (array[mid - 1] + array[mid]) / 2.0;
}
Arrays.sort(array, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
double result = Math.abs(o1 - mediana) - Math.abs(o2 - mediana);
return result == 0 ? o1 - o2 : (int) Math.round(result);
}
});
return array;
}
}
/*
Почитать в инете про медиану выборки
Реализуй логику метода sort, который должен сортировать данные в массиве по удаленности от его медианы.
Верни отсортированный массив от минимального расстояния до максимального.
Если удаленность одинаковая у нескольких чисел, то сортируй их в порядке возрастания.
Пример входящего массива:
13, 8, 15, 5, 17
медиана - 13
Отсортированный масив:
13, 15, 17, 8, 5
Требования:
1. Программа не должна выводить текст в консоль.
2. Программа не должна считывать данные с консоли.
3. Класс Solution должен содержать публичный статический метод Integer[] sort(Integer[] array).
4. Метод sort(Integer[] array) класса Solution должен сортировать данные в массиве по удаленности от его медианы.
*/