답변:
모든 기능 쌍이 표기법 과 비교되는 것은 아닙니다 . 기능 고려 F ( N을 ) = N 및 g ( N ) = { 1 경우 N 홀수이고 , n은 2 경우 N 짝수 . 또한 g ( n ) 과 같은 함수 는 실제로 알고리즘 실행 시간으로 발생합니다. 주어진 정수 n 이 소수 인지 확인하려면 명백한 무차별 대입 알고리즘을 고려하십시오 .
IsPrime(n):
for i ← 2 to (n-1)
if i·⌊n/i⌋ = n
return False
return True
이 알고리즘은 n 이 짝수 일 때 산술 연산 이 필요합니다 . O ( √작업을 할 때N복합이지만,Θ(N)연산, N은소수이다. 따라서 공식적으로이 알고리즘은 √ 를 사용하는 알고리즘과비교할 수 없습니다.모든n에대한 n 산술 연산.
알고리즘을 분석 할 때 대부분의 경우 비교적 간단한 함수 f에 대해 형식의 점근 적 상한 만 원합니다 . 예를 들어, 대부분의 교과서는 O ( n ) 산술 연산 에서 실행되는 간단하고 정확하게보고합니다 . 전형적인 상한 함수는 지수, 다항식 및 대수의 곱입니다 (계승 및 반복 대수 와 같은 더 이국적인 짐승 도 때때로 나타납니다). 그러한 두 가지 기능이 비교 가능하다는 것을 증명하는 것은 어렵지 않습니다.IsPrime(n)
이 MathOverflow 질문 도 참조하십시오 .
Wikipedia에서 큰 O 표기법의 정의 :
IF 및 모두 충분히 큰 값하는 양의 정수를 M 등이있는 경우에만 , F ( x는 ) M을 곱한 많아야 인 g ( X ) 의 절대 값이다. 즉, F ( X ) ∈ O ( g ( X ) ) 의 경우와 양의 실수가있는 경우에만 M 과 실수 X 0 되도록을
수렴하지 않는 함수 (상수 또는 무한대로)는 어떻게됩니까?
함수를보십시오 및 g ( x ) = 10
각 에 대해 , x = k π 와 같은 일부 x > x 0이 있으므로 f ( x ) = 0- 각 M - M f ( x ) > g ( x )에 대해 거짓이되고, g ( x )
그러나, 쉽게 볼 수 각 따라서뿐만 아니라 임의의 상수에 의해 제한되지 않고 M , X 는 0 , 일부가 X > X 0 되도록 F ( X ) < M g ( X ) 가양 수율 것이다 F ( X ) ∉ O ( g ( x ) )
참고 : 와 g ( x ) 사이의 최대 상수 차이를 허용하는 big O 인 경우 g ( x ) = log ( x ) 와 동일한 아이디어가 적용됩니다.