Есть ли кто?

  • 6
  • Недоступна
Реализуй метод main(String[]), который выводит в консоль true, если элемент содержится в переданном массиве, иначе — false. Массив array не должен изменять расположение своих элементов. Для поиска элемента в массиве нужен бинарный поиск. Чтобы это сделать, используй статический метод Arrays.binaryS
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (68)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
TripleAsh Стойка микрофона в Comedy Club prod.
около 10 часов назад
Был невнимателен в проверке условия на вывод true : false. Проверял на числа > 0, упустив из виду, что при найденном значении внутри массива, нам выводится индекс массива, который может быть >= 0.
Денис Консультант
undefined, 12:12
Очень хитрая задача
Шуман
Уровень 8
undefined, 08:22
Моя головная боль с этой задачей была в том, что я инициализировал второй массив содержимым Arrays.copyOf() при объявлении переменной класса, а не в методе main. Не делайте так. Я думал о быстром решении задачи, а не следованию конвенциям, лучше начинать работу над задачей непосредственно в методе, который её решает, а не при объявлении в начале класса (хотя тоже зависит от ситуации). Это и логично и облегчит работу вашим потомкам, поддерживающим код))))
MerryAnn
Уровень 10, Roma, Italy
12 октября, 13:07
не очень понятно зачем первый пункт задания - просто что бы добавить еще одну строчку кода и попользоваться copyOf? работало все нормально и без сортировки, и с сортировкой изначального массива. нет, надо было извратиться
Riga Android Developer
6 октября, 11:13
сначало я думал как сравнить пременную element и само значение которые мы искали ,потом до меня дошло что если значение не нашли то индекс переменой будет отрицательный и сравнивать нужно здесь, ну и сюда уже пришлось подглянуть чутка ибо в голове не укладывалось как отсортировать массив array не изменяя его
Anonymous #2759920
Уровень 5, Cambridge, United States
1 октября, 15:11
А почему без сортировки не принимается задача?
Mikhail Tabakaev Работает в ФБУЗ ЦГиЭКО
29 сентября, 07:35
Помучавшись получил такой алгоритм решения данной задачи: 1) создать копию массива (Arrays.copyOf); 2) отсортировать копию массива (Arrays.sort); 3) найти индекс элемента в отсортированной копии исходного массива (Arrays.binarySearch); 4) нестрогое (>=) неравенство с нулем индекса найденного / не найденного элемента в отсортированной копии исходного массива; 5) "принтуем" результат из 4-ого пункта. Профит 😄
Jkfknbchdx
Уровень 9, Екатеринбург, Russian Federation
7 октября, 18:04
Сходу написал такой код, но у меня не прошло, хотя очевидно все было +- верно, залез в комментарии, увидел "нестрогое неравенство" - поменял у себя ">" на ">=" и все сразу прошло. Спасибо. А теперь прошу пояснить, почему >= а не > ?
yowawowa
Уровень 11
8 октября, 04:53
Arrays.binarysearch возвращает индекс элемента массива, он может быть "0"
Gennady Kukuruz Backend Developer в ecommerce
18 октября, 10:00
Ну так человек выше пишет сравнение ">=" с нулем. Здесь никакой проблемы нет.
Anonymous #2746497
Уровень 9, Тверь
17 сентября, 17:55
Родненькие, подскажите, для чего в правильном решении строка Arrays.sort(copy); Во первых и без нее все прекрасно работает, во вторых в условии написано, что именно Массив array не должен изменять расположение своих элементов, а при binarySearch меняется расположение элементов в массиве copy. Так для чего же тогда нужна эта строка?
Элен
Уровень 17, Москва, Russian Federation
20 сентября, 17:13
Я поняла так: Перед тем, как применить метод binarySearch, массив надо отсортировать. Если сортируешь исходный массив - задача не проходит валидацию по первому пункту (т.е. сортировкой мы меняем расположение элементов массива). Чтобы не менять расположение элементов в исходном массиве, нужна эта строка.
Anonymous #2746497
Уровень 9, Тверь
20 сентября, 18:47
Благодарю, а я почему-то подумал, что метод binarySearch сам сортирует массив перед поиском
Элен
Уровень 17, Москва, Russian Federation
20 сентября, 18:59
Нет, такой опции в нем не заложено))
Иванов Дмитрий
Уровень 14, Борисоглебск, Russian Federation
25 сентября, 18:29
В очередной раз спасибо за подсказку!))) Всю голову сломал, как отсортировать массив, но в тоже время не изменить его значение. Уже начал гуглить дополнительные методы... (оказывается всё просто - сделать копию) Надо поспать😴
Никита
Уровень 16, Минск, Belarus
13 сентября, 19:16
из комментариев узнал, что надо делать копию исходного массива array? а почему с лету не засчитывает? (внешне массив не трогал, как был до метода main, так и остался. Видимо потому что метод sort его привел в противоположную последовательность. вопрос - он так противоположным и сохранился, тем самым я неявно нарушил условие валидации?
Александр
Уровень 20, Москва, Russian Federation
14 сентября, 13:27
ну да. Исходный массив array {9, 8, 7, 6, 5, 4, 3, 2, 1} После работы метода sort(array) array выглядит вот так: {1, 2, 3, 4, 5, 6, 7, 8, 9}, поэтому сортируя массив array мы явно-неявно)))) нарушаем условие: "массив array не должен изменять расположение своих элементов"
Olya
Уровень 8, Odessa, Ukraine
11 сентября, 20:37
ееее,с первого раза)) 😎😎😎