«Максимум » означает, что существует постоянная c, такая, что измеряется O ( log c n ) .logO(1)ncO(logcn)
В более общем контексте эквивалентно утверждению, что существуют (возможно, отрицательные) константы a и b такие, что f ( n ) ∈ O ( log a n ) и f ( n ) ∈ Ω ( log b n ) .f(n)∈logO(1)nabf(n)∈O(logan)f(n)∈Ω(logbn)
Легко пропустить нижнюю границу . В обстановке, где это будет иметь значение (что было бы весьма необычно, если вы заинтересованы исключительно в изучении асимптотического роста ), вы не должны иметь полной уверенности в том, что автор действительно имел в виду нижнюю границу, и вам придется полагаться на контекст, удостовериться.Ω(logbn)
Буквальный смысл записи выполняет арифметику с семейством функций, в результате чего получается семейство всех функций log g ( n ) n , где g ( n ) ∈ O ( 1 ) . Это работает почти так же, как умножение O ( g ( n ) ) на h ( n ) приводит к O ( g ( n ) h (logO(1)nlogg(n)ng(n)∈O(1)O(g(n))h(n) , за исключением того, что вы получите результат, который не выражается так просто.O(g(n)h(n))
Поскольку детали нижней границы находятся, вероятно, на незнакомой территории, стоит взглянуть на некоторые контрпримеры. Напомним, что любой ограничен по величине ; что существует постоянная c такая, что для всех достаточно больших n , | г ( н ) | < с .g(n)∈O(1)cn|g(n)|<c
При рассмотрении асимптотического роста обычно имеет значение только верхняя граница , поскольку, например, вы уже знаете, что функция положительная. Однако в полной общности следует обратить внимание на нижнюю границу g ( n ) > - c .g(n)<cg(n)>−c
Это означает, что, в отличие от более типичного использования обозначений big-oh, функции, которые слишком быстро уменьшаются, могут не попасть в ; например,
1logO(1)n
потому что
-logn
1n=log−(logn)/(loglogn)n∉logO(1)n
Показатель здесь возрастает по величине слишком быстро, чтобы быть ограниченным
O(1).
−lognloglogn∉O(1)
O(1)
Контрпример несколько иного рода состоит в том, что .−1∉logO(1)n