우리는 표준 교과서, 또는 전통을 따를 때, 우리 대부분은 알고리즘 클래스의 처음 몇 강의에 큰 오 표기법의 다음과 같은 정의를 가르쳐 :
에프= O ( g) iff (∃c>0)(∃n0≥0)(∀n≥n0)(f(n)≤c⋅g(n)).
아마도 우리는 모든 수량 화기와 함께 전체 목록을 제공 할 수도 있습니다.
- f=o(g) iff (∀c>0)(∃n0≥0)(∀n≥n0)(f(n)≤c⋅g(n))
- f=O(g) iff (∃c>0)(∃n0≥0)(∀n≥n0)(f(n)≤c⋅g( n ) )
- 에프= Θ ( g) iff ( ∃ c > 0 ) ( ∃ d> 0 ) ( ∃ n0≥ 0 ) ( ∀ n ≥ n0) ( d⋅ g(n)≤f(n)≤c⋅g(n))
- f=Ω(g) iff (∃d>0)(∃n0≥0)(∀n≥n0)(f(n)≥d⋅g(n))
- f=ω(g) iff (∀d>0)(∃n0≥0)(∀n≥n0)(f(n)≥d⋅g(n)) .
그러나 이러한 정의는 5 n log 4 n + √ 와 같은 간단한 것들을 증명할 때 다루기가 쉽지 않기 때문에, 우리 대부분은 "한계의 속임수"를 소개하기 위해 빠르게 움직입니다.5nlog4n+nlogn−−−−−√=o(n10/9)
- 경우 f = o ( g )f=o(g)0limn→∞f(n)/g(n)0
- f=O(g) 경우 존재하지 않다 ,+ ∞limn→∞f(n)/g(n)+∞
- 에프= Θ ( g) 경우 존재하지도 않는다 도 ,0 + ∞임n → ∞에프( n ) / g( n )0+∞
- f=Ω(g) 경우 존재하지 않다 ,0limn→∞f(n)/g(n)0
- f=ω(g) 경우 존재하고있다 .+ ∞limn→∞f(n)/g(n)+∞
내 질문은 :
학부 알고리즘 수업에서 , , , 및 의 정의 로 제한 조건을 취하는 것이 큰 손실이 될까요? 그것이 우리 모두 어쨌든 사용하는 것입니다. 수량 자 정의를 건너 뛰면 모든 사람의 삶이 더 쉬워진다는 것이 분명합니다.O Θ Ω ωoOΘΩω
표준 정의가 실제로 필요한 설득력있는 자연스러운 사례가 발생 했는지, 그렇지 않은 경우 표준 정의를 선결제 로 유지할 확실한 설득력이 있는지 알고 . c , n 0c,n0c,n0