무증상 상한은 무엇입니까?


15

내가 무증상으로 단단히 배운 것은 세타 표기법에서와 같이 위와 아래에서 묶여 있음을 의미합니다. 그러나 Big-O 표기법의 무증상 상한은 무엇을 의미합니까?


이것은 나도 혼란 스러웠다. 저자가 "theta"라고 말할 수없는 이유는 무엇입니까? 왜 불필요한 용어를 발명합니까?
beroal

답변:


21

big-O 경계가 "무증상"이라는 말은 기본적으로 작성자가 작성했음을 의미합니다 . 예를 들면, O ( X 2 ) 가 더 이상 어떤 일정한 시간보다 것을 의미  X 2 모두에 대해 충분히 큰  X ; "무조건적으로 빡빡하다"는 것은 그것이 충분히 큰 x에 대해  일정한 상수 x x 2 이고, 일정한 상수 x 1.999가 아니라는  것을 의미합니다  .Θ()O(x2)x2xx2xx1.999


13

다음은이를 설명하는 예와 David의 정답에 대한 구체적인 예입니다.

정수 의 배열을 입력으로 제공하는 알고리즘이 있다고 가정하십시오 . 이 알고리즘은 배열을 스캔하여 짝수 인 요소를 볼 때마다 초기에 0으로 설정된 카운터를 증가시킵니다. 우리는 알고리즘이 O ( n 3 ) 시간에 실행되는 것을 증명할 수 있습니다 . 여기서 nA 의 요소 수입니다 . 그러나 우리는 또한 더 긴밀한 경계를 줄 수 있으며 시간 O ( n ) 에서 실행된다고 말합니다 . 이 한계는 무조건 엄격합니다. 실제로 입력을 읽는 데 이미 Ω ( n ) 시간 이 걸리기 때문에 더 정확하고 알고리즘이AO(n3)nAO(n)Ω(n) 시간.Θ(n)


3
+1, 그러나 당신이 선택한 예제의 위험은 상한이 무증상이라고 주장하는 것이 잘못 해석 될 수 있다고 생각합니다. 그렇지 않은 경우이 문제에 대한 더 빠른 알고리즘이 가능하지 않아야합니다. ( " 입력을 읽는 데 적어도 시간이 필요합니다"라는 관찰이 표시 될 때마다 "더 빠른 알고리즘이 존재할 수 없음"주장을 정당화하는 데 사용되고 있기 때문입니다.Ω(n)
j_random_hacker

1
@j_random_hacker 당신이 옳습니다, 우리는 그것에주의해야합니다. 다시 말하지만, 무증상으로 꽉 찬 경계는 일반적으로 더 빠른 알고리즘을 가질 가능성에 대해서는 아무 말도하지 않습니다.
Juho
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.