Ответ - «Любая константа». Но в вашем примере (n-1)
не является константой, так как она зависит от n
.
Так что константа может быть такой же большой, как вы sh, если она не зависит от входных данных size.
Думайте о Big-Oh как о способе свести функцию к ее базовой c асимптотике. Это означает, что вы убираете все постоянные факторы и члены более низкого порядка. Но это все еще описывает функцию.
Чтобы пример из вашего комментария работал: пусть f(n) = n/2
и g(n) = 5
. Тогда f = O(n)
и g = O(1)
. Большой O ничего не говорит вам об отношении f
и g
для заданного значения c n
. Но если вы знаете функцию, вы можете оценить функции для заданного значения c n
. Это ничего не меняет в асимптотике.
Если эти функции происходят из времени выполнения алгоритмов, такое сравнение может сказать вам, для какого размера ввода плохой алгоритм работает лучше, чем хороший. Например, Mergesort работает в O(n log n)
, Bubblesort в O(n^2)
. Mergesort намного лучше, чем Bubblesort, но также намного сложнее. Так что если вы хотите отсортировать только 4 элемента, вы не хотите использовать Mergesort.