На самом деле @Justice и @Alex получают то, что показатель сложности O(f(N))
говорит об ограничивающем поведении (например, время выполнения, количество сравнений и т. Д.), Когда N стремится к бесконечности.
Они говорят, что если вы замените определенное значение на N, терминология O
больше не будет иметь смысла.
Есть еще один момент, который они не сделали. Это означает, что вы не можете использовать оператор в нотации O(...)
, чтобы сказать вам, что происходит, когда N мало. По определению нотация «большой О» ничего не говорит вам о том, что происходит в этом случае.
Это не просто педантизм. Например, функция стоимости F(N) = 1,000,000 * N + N**2
равна O(N**2)
, но первый член доминирует для значений N, меньших 1000. Если вы попытаетесь использовать меру O(N**2)
в качестве оценщика в этом случае, вы получите совершенно неправильный ответ.