Назад к вопросам
Junior
90
questionbank
Какая из сложностей быстрее: линейная или логарифмическая?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Логарифмическая.
Сравнение сложностей:
| Сложность | Описание | Пример алгоритма |
|---|---|---|
| $O(\log n)$ | Время выполнения растет медленно с увеличением $n$. | Бинарный поиск |
| $O(n)$ | Время выполнения растет пропорционально $n$. | Проход по списку |
При $ n > 2 $, $ \log n < n $.
Пример сравнения при $ n = 1000 $:
- $ \log_2 1000 \approx 10 $
- $ 1000 $
# Функция с логарифмической сложностью (бинарный поиск)
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# Функция с линейной сложностью (линейный поиск)
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1