1. Week3. 알고리즘의 수행시간
알고리즘의 수행시간을 계산하는 데 중요한 요소
하드웨어
속도
입력의
크기
실행시간의
성장률
CPU
언어
컴파일러
…
배열
그래프
데이터 타입
…
입력의 크기에 따라
증가하는
시간의 비율
점근적 표기법
성장률에 불필요한 요소는 삭제
작은 크기의 입력은 무시
(수행시간이 무조건 양의 방정식이라고 가정)
2. 점근적 표기법1. Big-Θ
상한선, 하한선 고려
=
최악, 최선의 상황 보장
점근적 표기법
=
작은 입력 무시
“알고리즘의 실행 시간이 어느 상황에서건 이정도 걸린다”
Θ(f(n))
k1,k2가 무엇인지는
중요치 않다.
선택할 수 있는 상수가
존재함이 중요
3. 점근적 표기법2. Big-O
상한선 고려
=
최악의 상황 보장
점근적 표기법
=
작은 입력 무시
“알고리즘의 실행 시간이 최대 이정도 걸린다”
(어떤 상황에선 덜 걸릴 수도 있다)
* little o 표기법
O(f(n))
4. 점근적 표기법3. Big-Ω
하한선 고려
=
최선의 상황 보장
점근적 표기법
=
작은 입력 무시
“알고리즘의 실행 시간이 최소 이정도 걸린다”
(어떤 상황에선 더 걸릴 수도 있다)
* ω 표기법
Ω(f(n))
5. Θ(f(n))이면, O(f(n)) = Ω(f(n))
이진검색의 경우, O(log n) 이지만 Θ(log n)은 아니다.
이진검색은 O(n), O(n^2), O(n^3)이다.
이진검색은 Ω(1)이다.
삽입정렬은 Ω(n) O(n^2) 사이에 있다.
최대한 점근적으로 정확하게 표기해야 한다.