Ну тут зависит от условий
Тоесть чтобы использовать бин поиск надо отсортировать сначал, тоесть вопрос где это юзается, например если постоянно добавляются данные по КД в коллекцию и добавляются в не отсортированном порядке, а брать надо прям сча то нврн не самый лучший вар, а если они добавляются сразу отсортированные тогда да, хороший вар, или если данные нужны редко, то тоже класс вар, ты добавляещь данные, они лежат, сортирует фоном и когда надо берешь Бин поиском
вар такой. приходит list<Object> с 1000 неотсортированными объектами. Также есть другой list<Integer> переменных, по которым нужно отсортировать list<Object>. То есть использование поиска может быть много раз. Соответственно в таком случае лучше отсортировать и затем использовать binarySearch?
Ну по идее да, норм, а данные часто приходят, ну всмысле часто приходят два листа?
Если по конкретнее, то приходит один раз list<Object>, затем идёт итерация данного листа и из него берётся int поле. Это int поле проверяется: есть ли в list<Integer> данная int переменная.
Ну короче в чем прикол, смотри, если ты не сортируешь, а просто ищешь элемент по двум листам это n² сложность, если ты Бин поиск юзаешь, то это n²(шобы отсортировать) logn - шобы найти Тоесть в чем прикол, сортируешь ты один раз при Бин поиске и потом быстро за logn находишь, а вот если без Бин поиска то ты находишь за n² но не надо сортировать, но у тебя любой поиск будет перебором типо, ну по идее, тоесть если у тебя эти два листа приходят часто и те надо из этих листов взять один элемент, то лучше просто, а если тебе приходит эти два листа редко и потом ты в этих двух листах ищешь по КД данные они те часто нужны, то Бин поиск, короче зависит от того что надо
А в листах будешь много раз искать, всмы он пришел один раз и потом много раз в нем ищешь или один раз и все ? Если один раз и все ищешь, а потом выбрасыватешь, то по обычному, если ищешь много раз по одному и тому же, то Бин поиск
Приходит один раз list<Object>, приходит один раз list<Integer>
А в листы часто залазишь?) Пришел один раз, один раз ты там чета взял и все(больше не лезешь туда) ? Или пришел один раз и весь жизненный цикл приложения лежит и ты им пользуешься пока он лежит, типо один раз залез, второй раз залез, третий ? Если первый случай тогда по обычному Если второй то Бин
list<Object> и list<Integer> могут часто приходить новые
Ну так , напиши полностью весь цикл работы с листом Зачем они приходят, что ты делаешь с ними, когда приходят новые Ищешь в листе одно совпадение или много раз ?
я вроде и так всё расписал)
Обсуждают сегодня