Бинарный поиск позволяет быстро находить нужный элемент в отсортированных данных, деля область поиска пополам на каждом шаге. github.com
Пример работы бинарного поиска на поиске книг в каталоге: omgit.ru
- Предположим, что все книги отсортированы по автору, слева направо. omgit.ru Нужно найти книгу, автор которой Пушкин. omgit.ru
- Берём книгу посередине полки и смотрим, кто её автор. omgit.ru Например, это Тютчев. omgit.ru Так как книги отсортированы по автору, понимаем, что правее этой книги искомой нет, следовательно, надо искать левее. omgit.ru Из поиска исключаем правую половину полки. omgit.ru
- Берём книгу посередине левой половины полки и смотрим, кто её автор. omgit.ru Например, Лесков. omgit.ru Значит, искомая книга находится правее. omgit.ru
- Берём книгу посреди оставшейся части полки. omgit.ru Если это та книга, которую искали, то всё хорошо, иначе снова исключаем половину (левую или правую, в зависимости от автора). omgit.ru
- В итоге либо находим искомую книгу, либо добираемся до такой малой части полки, где не будет ни одной книги. omgit.ru Тогда можно с уверенностью сказать, что искомой книги на полке нет. omgit.ru
Важно, чтобы данные были отсортированы, иначе бинарный поиск не будет работать корректно. pythonist.ru