Линейный поиск: различия между версиями

2 байта добавлено ,  7 лет назад
нет описания правки
[отпатрулированная версия][отпатрулированная версия]
(викификация, удалил сслыку на algolist (не нашел упоминания этого поиска там))
Нет описания правки
{{викифицировать}}
'''Линейный, последовательный поиск''' — [[алгоритм]] нахождения заданного значения произвольной функции на некотором отрезке. Данный алгоритм является простейшим алгоритмом поиска и, в отличие, например, от [[двоичный поиск|двоичного поиска]], не накладывает никаких ограничений на функцию и имеет простейшую реализацию. Поиск значения функции осуществляется простым сравнением очередного рассматриваемого значения (как правило, поиск происходит слева направо, то есть от меньших значений аргумента к большим) и, если значения совпадают (с той или иной точностью), то поиск считается завершённым.
 
Если отрезок имеет длину N, то найти решение с точностью до <math>\epsilon</math> можно за время <math>N\over\epsilon</math>. Т.о. [[Сложность алгоритма|асимптотическая сложность алгоритма]] — <math>O(n)</math>. В связи с малой эффективностью по сравнению с другими алгоритмами линейный поиск обычно используют, только если отрезок поиска содержит очень мало элементов, тем не менее, линейный поиск не требует дополнительной памяти или обработки/анализа функции, так что может работать в потоковом режиме при непосредственном получении данных из любого источника. Так же,Также линейный поиск часто используется в виде линейных алгоритмов поиска максимума/минимума.
 
В качестве примера можно рассмотреть поиск значения функции на множестве целых чисел, представленной таблично.