Встречается на собеседованиях • сегодня
Можно ли линейность превратить в логарифмическую форму сложности
Да, можно, если заменить линейный поиск или обработку на алгоритм с делением данных пополам, например, бинарный поиск или алгоритмы типа "разделяй и властвуй".
Пример:
Линейный поиск в массиве — O(n):
java
int linearSearch(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) return i;
}
return -1;
}Бинарный поиск (предполагает отсортированный массив) — O(log n):
java
int binarySearch(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}Также можно использовать структуры данных, поддерживающие логарифмические операции (например, TreeSet или TreeMap).

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