Встречается на собеседованиях • сегодня
Какие знаешь алгоритмы поиска по массиву
Линейный поиск (O(n)) - последовательно проверяем каждый элемент:
java
int linearSearch(int[] arr, int key) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == key) return i;
}
return -1;
}Бинарный поиск (O(log n)) - работает только на отсортированных массивах:
java
int binarySearch(int[] arr, int key) {
int left = 0, right = arr.length - 1;
while(left <= right) {
int mid = left + (right - left) / 2;
if(arr[mid] == key) return mid;
if(arr[mid] < key) left = mid + 1;
else right = mid - 1;
}
return -1;
}Также существуют:
- Интерполяционный поиск (O(log log n) в лучшем случае)
- Поиск Фибоначчи (оптимизация бинарного)
- Jump Search (прыжками по блокам)
Для коллекций в Java есть Collections.binarySearch() и Arrays.binarySearch().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы