Некоторые причины, по которым некоторые алгоритмы вычислений имеют большую вычислительную сложность:
- Зависимость от размера входных данных. 1 Количество элементарных операций, затраченных алгоритмом для решения конкретного экземпляра задачи, зависит не только от размера входных данных, но и от самих данных. 1 Например, количество операций алгоритма сортировки вставками значительно меньше в случае, если входные данные уже отсортированы. 1
- Неучёт некоторых накладных расходов. 2 При подсчёте сложности могут не учитываться, например, переменные циклов, используемых в программе. 2 Также могут не учитываться операции, которые считаются неважными, то есть значительно более простыми, чем те, которые учитываются. 2 Неважных операций может оказаться очень много, в таком случае они будут оказывать существенное влияние на сложность алгоритма. 2
- Ресурсозатратность отдельной операции. 2 Например, умножать короткие числа проще, чем длинные. 2
Также известны примеры, когда эффективные алгоритмы требуют таких больших объёмов машинной памяти, что этот фактор сводит на нет преимущество «эффективности» алгоритма. 1