문제

나는 이 튜토리얼은 시간 복잡성에 대한 $ o $ 표기법에 대한 설명에 약간의 수수께끼입니다. 그것은 쓴다 :

$ o (g (n))= $ { $ f (n) $ : 거기 $ c $ $ n_0 $ $ 0 \ leq f (n) \ leq c * g (n) 모든 $ n> n_0 $ .

이해 방법, $ c * g (n) $ $ c $ 을 나타냅니다. $ g (n) $ . 이 경우 위의 표현식이 시간을 지정하는 경우 $ C * G (n) $ 뿐만 아니라 $ f (n) $ ? 아니면 내가 틀렸고, 이것이 내가 이해하지 못하는 몇 가지 표기법일까요? 시간의 복잡성에 대한 나의 이해는 매우 기초 적이므로, 이것이 내 부분에 어리석은 실수라면 나를 용서합니다.

도움이 되었습니까?

해결책

f (n)

그렇지 않습니다. Bachmann-Landau 표기법은 단순히 기능의 성장률을 비교하는 편리한 방법입니다. 그 기능이 을 의미하는 에 대해서는 아무 것도 말하지 않습니다. 그리고 우리는 Bachmann이 1894 년에 일어 났을 때 컴퓨터에 대해 생각하지 않았다는 것을 꽤 확신 할 수 있습니다.

이러한 기능에 할당하는 의미 은 당신에게 달려 있습니다. 예를 들어, 비교 기반 정렬 알고리즘을 분석 할 때는 일반적으로 $ n $ 을 콜렉션 및 $ o (n) $ 그러나 실제로 정답 은 "당신이 기계 모델을 지정하지 않았기 때문에 그것을 말할 수 없을 것입니다. 예를 들어, 튜링 머신에서는, 목록을 복사하는 것은 $ o (n ^ 2) $ 이기 때문에, TM의 머리는 다음 요소를 쓸 수 있도록 목록의 끝에 도달하여 더 나아가 더 나아가 더 멀리 이동할 수 있습니다.

다른 팁

알고리즘의 실행 시간이 $ o (g (n)) $ 은 언급했듯이, 상한만을 제공합니다. 또한 상한은 상수 $ C $ $ N_0 $ 을 알 수 없게됩니다. 그래서 그렇습니다. 실행 시간에 대한 약한 정보입니다.

지정되지 않은 상수 $ 은 알고리즘의 기본 작동의 실제 비용에 대한 정보를 포함 할 수 있습니다. 이는 알고리즘 및 / 또는 실행 사이의 변수를 포함 할 수 있습니다. 그러나 여전히 경계가있는 시간을 비용으로하는 것으로 알려져 있습니다. 지정되지 않은 상수 $ n_0 $ 은 주어진 바인드가 입력 (또는 어떤 매개 변수 $ n $ < / span>이 대표합니다).

다른 기호 다른 유형을 제공하는 데 사용됩니다. 실행 시간에 대한보다 정확한 정보.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top