Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
АЛГОРИТМОВ
ЗА 5 МИНУТ
# ШПАРГАЛКА
§ ЧТО ТАКОЕ СЛОЖНОСТЬ
АЛГОРИТМОВ
И ЗАЧЕМ ЕЕ СЧИТАТЬ?
Сложность алгоритма - это мера того,
насколько сильно усложняется процесс
вычисления при увеличении входных
данных.
Пример:
```
Если мы до бесконечности будем
увеличивать объем входных данных,
как будет меняться работа нашего
алгоритма?
```
Эта асимптотическая оценка обычно
производится с помощью О большого или
О-нотации. Она показывает, какой
функцией ограничена асимптотическая
сложность нашего алгоритма. Другими
словами, если сложность алгоритма O(g),
то с увеличением объема входных данных
сложность алгоритма растет не быстрее
(или даже чуть медленней) функции g.
Пример:
O(n)
Примеры:
Итоговая сложность:
O(1) + max(O(1), O(N)) = O(1) + O(N) = O(N).
4. При умножении классы сложности
умножаются
Пример:
2. Линейная O(N)
- сортировка слиянием
5. Квадратичная - O(n^2)
- двойной цикл
- сортировка пузырьком
Пример:
def FindDuplicates(arr):
for ind, elem in enumerate(arr):
if elem in arr[ind + 1:]:
return True
return False
Итоговая сложность:
O(N)*[O(N) + O(N) + O(1)] = O(N^2)
К задаче!