Ответ
Для линейного поиска (O(n)) не нужно ничего делать с массивом — он уже подходит. Просто перебираем элементы по одному до нахождения нужного.
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}
Нюансы:
- Не требует сортировки или дополнительной памяти.
- Худший случай — весь массив (
O(n)). - Подходит для небольших или неотсортированных данных.
Для частых поисков лучше использовать другие структуры (хеш-таблицы, бинарный поиск в отсортированном массиве).
Ответ 18+ 🔞
Да ты посмотри, какая хуйня простая! Линейный поиск — это ж как в темной комнате искать зажигалку, на ощупь, похуй в каком порядке всё лежит. Никаких танцев с бубном, сука!
Вот смотри, код — проще пареной репы:
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}
В чём, блядь, соль?
- Хуй с ним, с порядком! Массив можешь хоть в жопу перевернуть — ему похуй. Ни сортировать, ни дополнительную память ебать не надо.
- Худший расклад — овердохуища шагов. Если элемент в самом конце или его вообще нет — придётся пройтись по всему массиву, вот и получается
O(n). Пиздец как неэффективно, если данных много. - Для мелких или бестолковых данных — в самый раз. Ну там, список из десяти покупок проверить. Но если у тебя там миллион записей и искать надо часто — это уже, простите, мудацкий подход.
Короче, если поиски у тебя чаще, чем чихи в сезон гриппа — вали на хеш-таблицы или бинарный поиск, но там массив уже отсортировать надо, ёпта. А это — тупой и честный способ, который всегда работает, хоть и медленно, как черепаха в сиропе.