Что такое сложность алгоритма
Python
Middle
Без компании
Что такое сложность алгоритма
Ответы
Сложность алгоритма — это мера количества ресурсов (времени и памяти), которые требуются для его выполнения, в зависимости от размера входных данных. Обычно выражается с помощью нотации «О» большое (Big-O).
**Виды сложности:**
- **O(1)** — константная (доступ к элементу массива).
- **O(log n)** — логарифмическая (бинарный поиск).
- **O(n)** — линейная (поиск в неотсортированном массиве).
- **O(n log n)** — линейно-логарифмическая (быстрая сортировка).
- **O(n²)** — квадратичная (пузырьковая сортировка).
- **O(2ⁿ)** — экспоненциальная (рекурсивное вычисление чисел Фибоначчи).
**Пример:**
```
# O(n) — линейная сложность
def linear_search(arr, target):
for item in arr:
if item == target:
return True
return False
# O(n²) — квадратичная сложность
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
```