StudyCode
Линейный поиск, бинарный поиск и сортировка — три фундаментальных алгоритма которые надо знать.
Линейный поиск — это когда ты перебираешь все элементы по одному, пока не найдёшь нужный (или не убедишься что его нет).
Аналогия из жизни: ищешь нужную книгу в стопке — берёшь каждую и смотришь название, пока не найдёшь.
// Найти индекс числа в массиве
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return i; // нашли — возвращаем индекс
}
}
return -1; // не нашли — возвращаем -1
}
const numbers = [3, 7, 12, 31, 56, 89];
linearSearch(numbers, 31); // 3 (индекс)
linearSearch(numbers, 99); // -1 (не нашли)Плюсы:
Минусы:
Массив из 10 элементов → до 10 проверок
Массив из 1 000 → до 1 000 проверок
Массив из 1 000 000 → до 1 000 000 проверокВремя растёт пропорционально размеру — это и есть O(n).
В JavaScript не нужно писать линейный поиск вручную — массивы имеют встроенные методы:
const fruits = ["яблоко", "банан", "груша", "манго"];
fruits.indexOf("груша") // 2 — индекс или -1
fruits.includes("банан") // true — просто да/нет
fruits.find(f => f.length > 5) // "яблоко" — первый подходящий элемент
fruits.findIndex(f => f === "манго") // 3 — индекс найденногоВсе они работают как линейный поиск — O(n).
У тебя массив из 1000 элементов. В среднем сколько проверок сделает линейный поиск?