Вопросы по механике и реализации алгоритма поиска. * НЕ * для вопросов об использовании инструментов поиска в API (например, Google, Bing, Facebook).

Поиск является одной из наиболее распространенных и важных задач в информатике.

Основным алгоритмом поиска является linear-search(также называемый «последовательный поиск»). Каждый элемент в наборе данных проверяется последовательно, пока не будет найден искомый элемент.

Например, если рассматриваемая коллекция уже отсортирована, то возможен более эффективный binary-search.

Поиск может стать более сложным, когда вместо того, чтобы находить один экземпляр определенного элемента, мы хотим найти все элементы, соответствующие определенному набору критериев. Например, запрос sqlможет указывать чрезвычайно сложные критерии поиска, а большая часть проектирования реляционной базы данных включает планирование эффективного способа выполнения этих поисков.

Другим более сложным сценарием поиска является поиск в графе, в котором необходимо пройти ряд узлов и ребер. Общие алгоритмы для этого домена включают в себя breadth-first-searchи depth-first-search. Во многих случаях алгоритм эвристического поиска, такой как a-star, может достичь более эффективных результатов, используя дополнительную информацию о проблеме.


Не используйте этот тег для вопросов о конкретных инструментах поиска в API. Вот некоторые более подходящие теги для этого: