Как оценивается сложность алгоритма
Python
Senior
Без компании
Как оценивается сложность алгоритма
Ответы
Сложность алгоритма оценивается с помощью нотации Big-O (О-большое), которая описывает верхнюю границу времени выполнения или использования памяти в зависимости от размера входных данных. Основные типы сложности:
- **O(1)** – константная сложность (например, доступ к элементу массива по индексу).
- **O(log n)** – логарифмическая (бинарный поиск).
- **O(n)** – линейная (проход по списку).
- **O(n log n)** – линейно-логарифмическая (быстрая сортировка).
- **O(n²)** – квадратичная (пузырьковая сортировка).
- **O(2ⁿ)** – экспоненциальная (рекурсивное вычисление чисел Фибоначчи без мемоизации).
Пример:
```
# O(n) – линейная сложность
def sum_list(lst):
total = 0
for num in lst: # n операций
total += num
return total
```
Важно анализировать худший случай, игнорируя константы и менее значимые члены (например, O(2n + 100) → O(n)).