Линейный (последовательный) поиск - алгоритм нахождения заданного элемента в массиве. Данный алгоритм является простейшим алгоритмом поиска и, в отличие, например, от двоичного поиска, не накладывает никаких ограничений на исходный массив и имеет простейшую реализацию. Поиск нужного элемента осуществляется простым сравнением очередного рассматриваемого значения (как правило, поиск происходит слева направо, то есть от меньших значений аргумента к большим) и, если значения совпадают, то поиск считается завершённым.
Описание алгоритма
Алгоритм линейного поиска состоит из трех частей
- начать с левой границы рассматриваемого массива и элемент за элементом сравнивать с искомым элементом;
- если совпадение найдено вернуть индекс элемента;
- если совпадений не найдено вернуть -1.
Визуализация работы алгоритма
Реализация алгоритма ня языке C#
int LinearSearch(int[] arr, int x)
{
for (int i = 0; i < a.Length; i++)
{
if (arr[i] == x)
return i;
}
return -1;
}
Характеристики алгоритма
Класс алгоритма | Алгоритм поиска |
---|---|
Структура данных | массив, связный список |
Худший случай | $$\mathcal{O}(n)$$ |
Лучший случай | $$\mathcal{O}(1)$$ |
Средний случай | $$\mathcal{O}(n)$$ |
Затраты на память | $$\mathcal{O}(1)$$ |