Меня смущает анализ производительности binarySearch
из коллекций
Он говорит:
Если указанный список не реализует интерфейс RandomAccess и большой, этот метод будет выполнять двоичный поиск на основе итератора, который выполняет O (n) обходов ссылок и O (log n) сравнений элементов.
Я не уверен, как интерпретировать это O (n)
+ O (log n)
.
Я имею в виду, разве это не хуже, чем просто просмотреть связанный список и сравнить? Мы по-прежнему получаем только O (n)
.
Итак, что это утверждение означает о производительности? Как сформулировано, я не могу понять разницу от простого линейного поиска в связанном списке.
Что я здесь не понимаю?