Деление на ноль

Линейный поиск: интерактивная анимация (Linear Search)

Последовательный перебор элементов массива до нахождения искомого

Визуализация

Искомое: В случайном месте
Искомое:
Ищем: 0
Легенда цветов
не проверен проверяем найден уже проверен (нет совпадения)
Нажмите "Пуск" или листайте по шагам.
Текущий индекс i: - Сравнения: 0 Шаг: 0 / 0 Сложность по времени: -

Как работает линейный поиск

Идея алгоритма. Самый простой и естественный способ найти элемент в массиве: берем первый элемент и сравниваем с искомым. Если не совпал - берем следующий. И так до тех пор, пока не найдем нужный или пока не закончится массив.

Сложность алгоритма

Сложность - это оценка того, как быстро растет потребление ресурса при росте длины массива n. Оценки записывают через O-нотацию - у нас есть отдельная анимация о том, как читать такие записи.

По времени

Показывает, как растет число операций (здесь это сравнения элементов) при росте n. Линейный поиск работает за O(n) - это значительно медленнее, чем двоичный поиск O(log n).

Случай Время Комментарий
Лучший (элемент в начале) O(1) Нашли сразу же на первом шаге
Средний O(n) В среднем придется просмотреть половину массива (n/2 сравнений)
Худший (элемента нет или он в конце) O(n) Придется проверить все n элементов

По памяти

Показывает, сколько дополнительной памяти нужно алгоритму помимо самого массива.

Характеристика Оценка Комментарий
Дополнительная память O(1) Хватает одной переменной i для хранения текущего индекса

Требования к данным

Характеристика Оценка Комментарий
Требует сортировки? Нет Работает на любых данных, в том числе неотсортированных (в отличие от двоичного поиска)

Примеры реализации линейного поиска (Linear Search)