예, 적절하게 작은 N의 경우, 항상 N이 있으며, 그 위의 순서는 항상 O (1) <O (lg N) <O (N) <O (N log N) <O (N ^ c ) <O (c ^ N) (여기서 O (1) <O (lg N)은 O (1) 알고리즘에서 N이 적절하게 크고 c가 1보다 큰 일부 고정 상수 인 경우 더 적은 연산을 수행함을 의미합니다. ).
특정 O (1) 알고리즘이 정확히 f (N) = 10 ^ 100 (구골) 연산을 취하고 O (N) 알고리즘이 정확히 g (N) = 2 N + 5 연산을 취한다고 가정합니다. O (N) 알고리즘은 N이 대략 구골이 될 때까지 (실제로 N> (10 ^ 100-5) / 2 일 때) 더 나은 성능을 제공하므로 N이 1000에서 10 억 사이에있을 것으로 예상한다면 O (1) 알고리즘을 사용하면 큰 페널티를받습니다.
또는 현실적인 비교를 위해 n 자리 숫자를 곱한다고 가정하십시오. 카라 츠바 알고리즘은 최대 3 N이다 ^ 동작 (3 LG) (대충 O (N ^ 1.585))이 잠시 쇤하게 - 슈트라 센 알고리즘은 O A는 (N 로그 N 로그 로그 N)은 빠른 순서 이지만 인용 위키 백과 :
실제로 Schönhage–Strassen 알고리즘은 2 ^ 2 ^ 15에서 2 ^ 2 ^ 17 (십진수 10,000 ~ 40,000 자리) 이상의 숫자에서 Karatsuba 및 Toom–Cook 곱셈과 같은 이전 방법보다 성능이 뛰어납니다. [4] [5] [6 ]
따라서 500 자리 숫자를 곱하면 "빠른"알고리즘을 큰 O 인수로 사용하는 것이 적합하지 않습니다.
편집 : 당신은 한계 N-> f (N) / g (N)의 무한대를 취함으로써 g (N)에 대해 f (N)을 결정하는 것을 찾을 수 있습니다. 한계가 0이면 f (N) <g (N)이고, 한계가 무한대이면 f (N)> g (N)이며, 한계가 다른 상수이면 f (N) ~ g (N) 큰 O 표기법 측면에서.