В бинарном поиске почему обход назад стоит дороже, чем переход вперед? - PullRequest
0 голосов
/ 20 октября 2019

Мой вопрос возник из следующего абзаца:

Бинарный поиск лучше, чем поиск с прыжком, но у поиска с прыжком есть преимущество, которое мы просматриваем только один раз (для бинарного поиска может потребоваться до O (Logn) прыжки, рассмотрим ситуацию, когда искомый элемент является наименьшим элементом или меньше, чем наименьший элемент). Таким образом, в системе, где бинарный поиск является дорогостоящим, мы используем Jump Search.

Вот что такое поиск перехода: http://geeksforgeeks.org/jump-search/

1 Ответ

0 голосов
/ 20 октября 2019

Почему в бинарном поиске обратный возврат стоит больше, чем обратный?

Это не общая истина, и это не то, что хочет выразить цитата из GeeksforGeeks. Они хотят сказать, что , если известно, что (!) Обход назад по какой-то причине дороже, чем переход вперед (независимо от того, какой метод поиска вы используете), затем Jump Search может стать интересным выбором. Если нет, то вряд ли есть причина рассматривать эту альтернативу.

Приведенное ниже объяснение может быть улучшено следующим образом:

Двоичный поиск лучше имеет более сложную временную сложность , чем поиск по прыжкам, но преимущество по поиску прыжков заключается в том, что мы переходим обратно только один раз (для бинарного поиска может потребоваться до O (Log n) прыжков назад ; рассмотрим ситуацию, когдаэлемент для поиска является наименьшим элементом или меньше, чем наименьший). Таким образом, в системе, где бинарный поиск обходится дорого обратный обход обходится дороже, чем прямой обход , нам может потребоваться использование поиска перехода.

В примерах, когда перемещение в обратном направлении может стоить дороже, представьте данные, которые хранятся на лентах: при перемещении в прямом направлении лента может просто включаться и включаться при предоставлении данных, но с обратным перемещениемлента должна прекратить перемотку вперед (это стоит времени), выполнить перемотку и затем снова изменить направление (опять же, это требует дополнительного времени). Или возьмите дисководы, где диск должен пройти один полный оборот, чтобы добраться до места для чтения предыдущего блока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...