Как должен выглядеть отсортированные четный массив ?
так ?
нечётный массив (в условии)
Входной массив {13, 8, 15, 5, 17}
медиана - 13
вывод в консоль - Отсортированный массив {13, 15, 17, 8, 5}
четный массив
Входной массив {12, 8, 14, 15, 5, 17}
медиана - 13
вывод в консоль - Отсортированный массив {13, 14, 15, 17, 12, 8, 5}
я так сделал. валик говорит "Убедись, что метод sort(Integer[] array) правильно сортирует данные в массиве с четным количеством элементов."
VitalyK #1116124
1 уровень
Помогите пожалуйста разобраться с условием.
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavlo PlynkoJava-разработчик в CodeGymExpert
18 мая 2020, 08:29
В случае входного массива {12, 8, 14, 15, 5, 17}
отсортированный такой: [12, 14, 15, 17, 8, 5]
т.е. метод должен сортировать массив, т.е. только переставлять его элементы в соотв. с условием.
0
VitalyK #1116124
18 мая 2020, 15:52
покажите пожалуйста формулу по какой считать. медиана это при отсортированном массиве берутся два центральных элемента и делятся на 2, а вот почему такая сортировка в отчетном массиве не понимаю т.е.
отсортированный массив {5, 8, 12, 14, 15, 17}
т.е. так сделал но валик пишет тоже самое видно формула не правильная и с другим количество элементов не проходит
{12, 8, 14, 15, 5, 17, 13, 18};
на выходе 13 14 15 17 18 12 8 5
медиана (12 + 14) /2 = 13
а почему такой ряд не понимаю [12, 14, 15, 17, 8, 5]
сделал так но валик не принимает видно не правильно делает и с други количеством элементов не проходит
пробую с другим количеством
{12, 8, 14, 15, 5, 17, 13, 18}
на выходе
13 14 15 17 18 12 8 5
0
Pavlo PlynkoJava-разработчик в CodeGymExpert
18 мая 2020, 16:12
вродь медиана должна быть (13 + 14) / 2 = 13.5
нет?
+1
VitalyK #1116124
18 мая 2020, 18:47
в последнем ?
в последнем так и будет
5, 8, 12, 13, 14, 15, 17, 18
(13 + 14) / 2 = 13.5
.... и не понимаю какой должен быть выходной массив ?
0
Pavlo PlynkoJava-разработчик в CodeGymExpert
19 мая 2020, 05:33решение
[13, 14, 12, 15, 17, 18, 8, 5]
13 - 13.5 = -0.5
14 - 13.5 = 0.5
12 - 13.5 = -1.5
15 - 13.5 = 1.5
17 - 13.5 = 3.5
18 - 13.5 = 4.5
8 - 13.5 = -5.5
5 - 13.5 = -8.5
+3
VitalyK #1116124
20 мая 2020, 08:49
Спасибо. я мысль понял :)
0
Роман Senior Software Engineer
17 мая 2020, 15:43
Используем мощь Java 8
Для изучения Java 8
https://vertex-academy.com/tutorials/ru/java-8-uchebnik/
+1
VitalyK #1116124
17 мая 2020, 16:53
это массив нечётный {4,5,6,7,8} - тут будет так.. медиана 6 и выходной массив будет {6,7,8,5,4}
а если массив {12, 8, 14, 15, 5, 17} то так ? - медиана 13 и выходной массив {13, 14, 15, 17, 12, 8, 5} ???
0
Роман Senior Software Engineer
17 мая 2020, 20:54
Если не сможешь реализовать, то сам покажу и обьясню уже в коде, но алгоритм должен быть такой.
1.Создаем список и сортируем его. Удобно использовать возможности Java 8
2. Делаем проверку:
Если список четный, то медиана равна среднему арифметическому двух числе посередине,
Иначе медиана стоит посередине этого ряда.
3. Вывод медианы.
0
VitalyK #1116124
18 мая 2020, 05:57
Спасибо, у меня планы такие :) я хочу сначала сделать по старому (через цикл for), потом (чтоб научится) попробовать переделать код и сделать с лямбдой. И я прошу помощи... как должен выглядеть входной и выходной массив для четного массива потому что нечетный массив приведён в задании. И я выложил раннее пример для четного массива. я правильно думаю , так должно быть ?
Массив сортируется. медиана находится через сложение двух центральных элементов массива и делиться на два, потом это число ставится первым. И получается следующее
входной массив {12, 8, 14, 15, 5, 17}
выходной массив {13, 14, 15, 17, 12, 8, 5}
так ?
0
Роман Senior Software Engineer
18 мая 2020, 06:42
Я не знаю как там по заданию, но если медиана должна ставится на первое место, то да.
Насчет, выходного не могу сказать, с условием ознакомься там.
Если там нужно отсортировать его специфически, то воспользуйся Comparator
И примени Collections.sort(массив, компаратор).
0
Роман Senior Software Engineer
18 мая 2020, 06:43
Компаротор будет Math.abs(median - o) - Math.abs(median - o1)). То есть относительно друг друга нашей медианы. То есть 11,13,15. Вокруг 13 числа 11 и 15 мы их и сортируем
0