Что такое оценка сложности алгоритма
Python
Senior
Без компании
Что такое оценка сложности алгоритма
Ответы
Оценка сложности алгоритма (Big-O нотация) — это способ описания времени выполнения или использования памяти алгоритмом в зависимости от размера входных данных. Она помогает сравнивать эффективность алгоритмов, игнорируя константы и низкоуровневые детали.
**Основные виды сложности:**
- O(1) — константная (доступ к элементу массива)
- O(log n) — логарифмическая (бинарный поиск)
- O(n) — линейная (поиск в неотсортированном массиве)
- O(n log n) — линейно-логарифмическая (быстрая сортировка)
- O(n²) — квадратичная (пузырьковая сортировка)
**Пример:**
```
# O(n) — линейная сложность
def find_max(arr):
max_val = arr[0]
for num in arr: # n операций
if num > max_val:
max_val = num
return max_val
```
Big-O оценивает худший случай, но бывают и другие оценки (Ω — лучший, Θ — средний).