Преимущества использования асимптотических оценок в программировании:
- Возможность сравнения алгоритмических идей. cs.stackexchange.com Асимптотический анализ позволяет оценить, как время работы алгоритма (или пространство памяти, занимаемое алгоритмом) возрастает с увеличением размера входных данных. timyrik20.gitbooks.io
- Полезность для простых базовых задач. cs.stackexchange.com Асимптотическая сложность легко вычисляется и подходит для задач, которые рассматриваются в учебниках по алгоритмам. cs.stackexchange.com
Некоторые недостатки асимптотического анализа:
- Игнорирование малых размеров входных данных. timyrik20.gitbooks.io При малых размерах входных данных во время работы алгоритма могут доминировать постоянные константы или слагаемые с более низким порядком. timyrik20.gitbooks.io
- Сложность реализации. timyrik20.gitbooks.io Алгоритмы с лучшей сложностью часто являются более сложными, что может увеличить время кодирования. timyrik20.gitbooks.io
- Различия в константах. timyrik20.gitbooks.io Например, алгоритмы быстрой и пирамидальной сортировки имеют одинаковый порядок роста в зависимости от размера входных данных, но константы, скрытые за порядком роста, различаются. timyrik20.gitbooks.io
- Различия между худшим и средним случаем. timyrik20.gitbooks.io Алгоритм с лучшими показателями в худшем случае может быть предпочтительнее, если средняя производительность другого алгоритма с учётом ожидаемого ввода лучше. timyrik20.gitbooks.io
Таким образом, асимптотический анализ не является совершенным средством для анализа алгоритмов, и его использование имеет свои ограничения. timyrik20.gitbooks.io