„Co najwyżej ” oznacza, że istnieje stała c taka, że mierzone jest O ( log c n ) .logO(1)ncO(logcn)
W szerszym zakresie, jest równoważna do stwierdzenia, że istnieje (ewentualnie ujemny) stałe i b tak, że f ( n ) ∈ O ( log n ) i f ( n ) ∈ Ω ( log b n ) .f(n)∈logO(1)nabf(n)∈O(logan)f(n)∈Ω(logbn)
Łatwo przeoczyć dolną granicę . W otoczeniu, w którym miałoby to znaczenie (co byłoby bardzo rzadkie, jeśli jesteś zainteresowany wyłącznie badaniem asymptotycznego wzrostu ), nie powinieneś mieć całkowitej pewności, że autor miał na myśli dolną granicę, i musiałbyś polegać na kontekście Upewnić się.Ω(logbn)
Dosłowne znaczenie notacji O ( 1 ) n polega na wykonywaniu arytmetyki na rodzinie funkcji, czego wynikiem jest rodzina wszystkich funkcji log g ( n ) n , gdzie g ( n ) ∈ O ( 1 ) . Działa to w zasadzie tak samo, jak mnożenie O ( g ( n ) ) przez h ( n ) daje O ( g ( n ) h (logO(1)nlogg(n)ng(n)∈O(1)O(g(n))h(n) , z wyjątkiem tego, że otrzymujesz wynik, który nie jest tak prosty.O(g(n)h(n))
Ponieważ szczegóły dolnej granicy znajdują się prawdopodobnie na nieznanym terytorium, warto przyjrzeć się niektórym kontrprzykładom. Przypomnijmy, że dowolna jest ograniczona wielkością ; że istnieje stała c taka, że dla wszystkich wystarczająco dużych n , | g ( n ) | < c .g(n)∈O(1)cn|g(n)|<c
Patrząc na asymptotyczny wzrost , zwykle tylko górna granica znaczenie, ponieważ np. Już wiesz, że funkcja jest dodatnia. Jednak w pełnej ogólności musisz zwrócić uwagę na dolną granicę g ( n ) > - c .g(n)<cg(n)>−c
Oznacza to, w przeciwieństwie do bardziej typowych zastosowań notacji big-oh, funkcje, które zmniejszają się zbyt szybko, mogą nie znajdować się w ; na przykład
1logO(1)n
ponieważ
-logn
1n=log−(logn)/(loglogn)n∉logO(1)n
Wykładnik tutaj rośnie zbyt szybko, aby być ograniczony przez
O(1).
−lognloglogn∉O(1)
O(1)
Przeciwprzykładem nieco innego rodzaju jest to, że .−1∉logO(1)n