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