169 похожих чатов

Есть ли смысл в таком случае использовать Collections.binarySearch?

12 ответов

9 просмотров

Ну тут зависит от условий

Тоесть чтобы использовать бин поиск надо отсортировать сначал, тоесть вопрос где это юзается, например если постоянно добавляются данные по КД в коллекцию и добавляются в не отсортированном порядке, а брать надо прям сча то нврн не самый лучший вар, а если они добавляются сразу отсортированные тогда да, хороший вар, или если данные нужны редко, то тоже класс вар, ты добавляещь данные, они лежат, сортирует фоном и когда надо берешь Бин поиском

Кирюша-Роджер Автор вопроса
Dmitry 🥥
Тоесть чтобы использовать бин поиск надо отсортиро...

вар такой. приходит list<Object> с 1000 неотсортированными объектами. Также есть другой list<Integer> переменных, по которым нужно отсортировать list<Object>. То есть использование поиска может быть много раз. Соответственно в таком случае лучше отсортировать и затем использовать binarySearch?

Ну по идее да, норм, а данные часто приходят, ну всмысле часто приходят два листа?

Кирюша-Роджер Автор вопроса
Dmitry 🥥
Ну по идее да, норм, а данные часто приходят, ну в...

Если по конкретнее, то приходит один раз list<Object>, затем идёт итерация данного листа и из него берётся int поле. Это int поле проверяется: есть ли в list<Integer> данная int переменная.

Dmitry 🥥
Ну по идее да, норм, а данные часто приходят, ну в...

Ну короче в чем прикол, смотри, если ты не сортируешь, а просто ищешь элемент по двум листам это n² сложность, если ты Бин поиск юзаешь, то это n²(шобы отсортировать) logn - шобы найти Тоесть в чем прикол, сортируешь ты один раз при Бин поиске и потом быстро за logn находишь, а вот если без Бин поиска то ты находишь за n² но не надо сортировать, но у тебя любой поиск будет перебором типо, ну по идее, тоесть если у тебя эти два листа приходят часто и те надо из этих листов взять один элемент, то лучше просто, а если тебе приходит эти два листа редко и потом ты в этих двух листах ищешь по КД данные они те часто нужны, то Бин поиск, короче зависит от того что надо

Кирюша Роджер
Если по конкретнее, то приходит один раз list<Obje...

А в листах будешь много раз искать, всмы он пришел один раз и потом много раз в нем ищешь или один раз и все ? Если один раз и все ищешь, а потом выбрасыватешь, то по обычному, если ищешь много раз по одному и тому же, то Бин поиск

Кирюша-Роджер Автор вопроса
Dmitry 🥥
А в листах будешь много раз искать, всмы он пришел...

Приходит один раз list<Object>, приходит один раз list<Integer>

Кирюша Роджер
Приходит один раз list<Object>, приходит один раз ...

А в листы часто залазишь?) Пришел один раз, один раз ты там чета взял и все(больше не лезешь туда) ? Или пришел один раз и весь жизненный цикл приложения лежит и ты им пользуешься пока он лежит, типо один раз залез, второй раз залез, третий ? Если первый случай тогда по обычному Если второй то Бин

Кирюша-Роджер Автор вопроса
Dmitry 🥥
А в листы часто залазишь?) Пришел один раз, один р...

list<Object> и list<Integer> могут часто приходить новые

Кирюша Роджер
list<Object> и list<Integer> могут часто приходить...

Ну так , напиши полностью весь цикл работы с листом Зачем они приходят, что ты делаешь с ними, когда приходят новые Ищешь в листе одно совпадение или много раз ?

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта