Так можно ли написать реализацию двоичного поиска, которая возвращает объект вместо индекса? Мне нужно, чтобы вся задача была завершена в O(logn)
времени и не тратила больше времени на то, чтобы потом вызвать collection.get() после того, как я получу только индекс, поэтому сложность становится O(nlogn)
.Реализация бинарного поиска, который возвращает объект вместо индекса?
1
A
ответ
2
Для двоичного поиска потребуется контейнер с произвольным доступом. Если вы знаете индекс, вы должны иметь возможность достичь элемента в O (1). Если это не так, тогда двоичный поиск будет неправильным алгоритмом в первую очередь.
В этом случае вы используете ArrayList
, который представляет собой оболочку вокруг массива, которая действительно обеспечивает эффективный произвольный доступ.
1
Вы не будете делать бинарный поиск на что-нибудь но O (1) коллекция произвольного доступа: в противном случае время поиска будет далеко за пределы O (журнал (N)). Так называемое «дополнительное время» не существует в коллекции O (1): ваша замена должна будет сделать тот же шаг в любом случае.
Смежные вопросы
- 1. Реализация алгоритма бинарного поиска
- 2. Реализация бинарного поиска гадания
- 3. Реализация бинарного поиска в JavaScript
- 4. Реализация бинарного поиска в C
- 5. реализация бинарного поиска с помощью python
- 6. Реализация бинарного поиска с допуском в JavaScript?
- 7. Реализация бинарного поиска по массиву строк
- 8. Рандомизированный алгоритм бинарного поиска
- 9. Узел тестирования бинарного поиска
- 10. TCP реализация бинарного протокола
- 11. LOWER_BOUND против бинарного поиска
- 12. Использование алгоритма бинарного поиска
- 13. Будет ли моя реализация бинарного поиска работать правильно?
- 14. бинарного дерева поиска
- 15. Почему эта реализация бинарного поиска делает браузер невосприимчивым?
- 16. Реализация бинарного множителя на C++
- 17. Использование бинарного поиска не так?
- 18. Продолжительность бинарного поиска
- 19. Примеры использования бинарного поиска
- 20. Число сравнений бинарного поиска
- 21. бинарного дерева поиска
- 22. бинарного дерева поиска - заказ
- 23. бинарного дерева поиска
- 24. Инструмент поиска индекса индекса, который может фильтровать пунктуацией?
- 25. Создание Java бинарного дерева поиска
- 26. Реализация бинарного дерева в Java
- 27. Объект/элемент из ячейки UICollectionView вместо индекса?
- 28. SimpleXML возвращает объект вместо строки
- 29. Функция бинарного поиска C++ несовместима
- 30. Сортировка вектор объектов для бинарного поиска
Почему вызов 'get' делает сложность O (nlog (n))? – user2357112
Что это за коллекция? –
@ user2357112, потому что вы разбираете коллекцию серийно, чтобы получить объект, который я предполагаю. Это мотив, как у вас есть указатель на элемент только его индекс в коллекции. –