Big Theta 대신 Big O를 가르치는 이유는 무엇입니까?


21

Big O 표기법은 함수 의 상한을 제공하는 반면 Big Theta는 엄격한 경계를 제공합니다. 그러나 Big O 표기법은 일반적으로 Big Theta를 의미 할 때 (비공식적으로) 가르쳐지고 사용됩니다.

예 : "Quicksort is O (N ^ 2)"는 "Quicksort is Θ (N ^ 2)"와 같이 훨씬 더 강력한 문장으로 바뀔 수 있습니다.

Big O의 사용법은 기술적으로 정확하지만, Big Theta의 일반적인 사용이 더 표현력이 떨어지고 혼동을 줄이지는 않습니까? 이 Big O가 더 일반적으로 사용되는 역사적인 이유가 있습니까?

위키 백과 노트 :

비공식적으로, 특히 컴퓨터 과학에서, Big O 표기법은 종종 주어진 맥락에서 Big Theta Θ 표기법을 사용하는 것이 더 사실적으로 적합 할 수있는 점근 적 경계를 설명하기 위해 다소 남용 될 수 있습니다.


3
나는 이것이 실제로 질문과 관련이 없다는 것을 알고 있지만, 퀵 정렬은 세타 (N ^ 2)가 아닙니다. O (N ^ 2)입니다.
jsternberg

Big O는 초보자 / CS가 아닌 사람들이 알아야 할 사항입니다. 빅 세타 (Big Theta)는 알고리즘 입문에서 다루고 있으며 모든 전공에서 다루지는 않습니다. 알고리즘 수업을받은 사람은 원하는 경우 Big O 표기법을 자세히 읽을 수 있습니다. Wikipedia 인용구가 무엇인지 확실하지 않습니다. 학술 출판물을 사용하면 Big O와 Big Theta를 혼동하면 회의에서 목구멍이 찢어집니다. 어떤 사람들은 세타를 쫓는 데 평생을 보내고 있으며 그들은 어려운 문제입니다.
Job

@jsternberg 기술적으로는 맞습니다. 이것은 사실이지만 의미가 없습니다. "어쨌든 Quicksort (최악, 최고, ...)는 O (n ^ 100)입니다. 그러나 OP에 더 동의해야합니다. QuickSort 최악의 경우는 Theta (N ^ 2) QuickSort의 가장 좋은 사례는 Theta (NlogN)입니다. 각각의 경우에 다른 기능을 수행 할 것입니다
Eldar

답변:


26

일반적으로 성능 분석시 최악의 경우에만 관심이 있기 때문입니다. 따라서 상한을 아는 것으로 충분합니다.

주어진 입력에 대해 예상보다 빠르게 실행될 때, 그것은 중요하지 않습니다. 대부분 무시할만한 정보입니다.

@ 피터 테일러 (Peter Taylor)가 지적했듯이 일부 알고리즘에는 전혀 제한이 없습니다. 예를 들어 O (n ^ 2) 및 Omega (n) 인 quicksort를 참조하십시오.

더욱이, 엄격한 경계는 종종 계산하기가 더 어렵습니다.

참조 :


6
그러나 Big O가 반드시 최악의 성능에 해당하는 것은 아닙니다. 나는 quicksort가 O (2 ^ n)에서 실행되고 100 % 정확하다고 말할 수 있습니다. 알고리즘 X가 O (N ^ 2)가 아니라 Theta (N ^ 2)에서 실행된다고 말하면 훨씬 더 의미가 있습니다.
tskuzzy

또한 엄격한 경계는 알고리즘을 분석 할 때 항상 상한이 아닌 거의 항상 계산됩니다. 사람들이 할 수있을 때 훨씬 더 표현적인 세타 표기법을 사용하지 않는 이유를 묻습니다.
tskuzzy

9
나는 왜 대부분의 프로그래머가 그것을 사용하지 않는지 말해 주었다. 우리는 게으 르며 많은 정확성이 필요하지 않습니다. 원하는 경우 아무도 큰 세타를 사용하지 못하게합니다. 어서하세요 알고리즘 선택은 그로부터 많은 이점을 얻지 못할 것입니다. 나는 큰 O 표기법에 의해 혼동 된 프로그래머에 대해 들어 본 적이 없다. 나도 혼란스럽지 않습니다.
팔콘

9

한 가지 이유는 Θ가 알려지지 않은 경우가 많기 때문입니다. 예를 들어, 행렬 곱셈은 O (n ^ 2.376)이지만 알려진 바운드 경계는 없습니다. 물론, 지금까지 내가 말할 수있는, 거기에 있다 행렬 곱셈 행 꽉,하지만 우리는 그 가치를 알지 못한다.


그러나 그것은 특정 알고리즘이 아니라 문제의 실행 시간에 대한 경계입니다. 일반적으로 행렬 곱셈은 3 차 시간보다 빠르게 풀 수 있지만, 순진 알고리즘은 무엇이든 상관없이 Θ (n ^ 3)입니다.
tskuzzy

5
@tskuzzy, 퀵 정렬하십시오. O (n ^ 2)와 Omega (n)이기 때문에 Theta-bound가 없습니다.
피터 테일러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.