[#] [Перевод] Двоичный поиск в графах
habrabot(difrex,1) — All
2017-12-13 13:30:07



Двоичный поиск — один из самых базовых известных мне алгоритмов. Имея отсортированный список сравнимых элементов и целевой элемент, двоичный поиск смотрит в середину списка и сравнивает значение с целевым элементом. Если цель больше, мы повторяем с меньшей половиной списка, и наоборот.

При каждом сравнении алгоритм двоичного поиска разбиваем пространство поиска пополам. Благодаря этому всегда будет не более ![$\log(n)$][1] сравнений со временем выполнения ![$O(\log n)$][2]. Красиво, эффективно, полезно.

Но всегда можно посмотреть под другим углом.

Что, если попробовать выполнить двоичный поиск по графу? Большинство алгоритмов поиска по графам, такие как поиск в ширину или поиск в глубину, требуют линейного времени и были придуманы довольно умными людьми. Поэтому если двоичный поиск по графу будет иметь какой-то смысл, то он должен использовать больше информации, чем та, к которой имеют доступ обычные алгоритмы поиска.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/formulas/977/127/94a/97712794aafea56e3f8dd3a0c696f27b.svg
[2]: https://habrastorage.org/getpro/habr/formulas/214/875/38a/21487538a6dbcc06fa5704effedb4282.svg
[3]: https://habrahabr.ru/post/344144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=344144#habracut