Ответ
Линейный поиск — простейший алгоритм, проверяющий элементы последовательно. Сложность O(n).
Пример:
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}
Бинарный поиск — работает на отсортированных массивах, делит диапазон пополам. Сложность O(log n).
Пример:
function binarySearch(arr, target) {
let left = 0, right = arr.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
Также существуют:
- Поиск в глубину (DFS) и в ширину (BFS) для графов
- Интерполяционный поиск — улучшенный бинарный для равномерно распределенных данных
- Поиск Фибоначчи — вариант бинарного с делением по числам Фибоначчи