Полевой справочник
Линейный поиск
O(n)Проходим по массиву один раз, проверяя каждый элемент по порядку, когда структуру данных ещё не на что опереться.
Сигналы
неотсортированный массивпроверить каждый элементнет гарантии порядканайти первое/любое совпадениемалый n или разовый проход
Шаблон
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}Похоже, но не то
- Бинарный поиск: Бинарному поиску нужны отсортированные данные и n, достаточно большое, чтобы деление пополам себя окупало. На неотсортированных данных или при малом n сортировка (или сам бинарный поиск) обойдётся дороже, чем обычный проход.
нет гарантии порядка, n до ~1e4..1e5 при одном проходе -> O(n) время, O(1) память. Если n большое И данные отсортированы, это сигнал перейти к бинарному поиску.
Изучить этот паттерн