입력 크기가 커질 때 알고리즘의 실행 시간이 어떤 비율로 늘어나는지를 나타낸 것이다. 초 단위 실행 시간은 기계와 언어에 따라 달라지므로, 대신 기본 연산이 몇 번 일어나는지를 입력 크기 의 함수로 센다.
표기
가장 많이 쓰는 것은 big-O 다. 은 충분히 큰 에서 실행 횟수가 의 상수배를 넘지 않는다는 뜻, 즉 위쪽 한계를 말한다. 상수배와 낮은 차수 항은 버리므로 은 이다.
| 표기 | 뜻 |
|---|---|
| 이보다 느리지는 않다 (상한) | |
| 이보다 빠르지는 않다 (하한) | |
| 상한과 하한이 같다 |
최악·평균·최선
같은 알고리즘도 입력 모양에 따라 걸리는 시간이 다르다. Insertion Sort 는 이미 정렬된 배열에서 이지만 역순 배열에서는 이다. 각 원소가 제자리에서 최대 칸 떨어져 있는 배열이라면 으로 끝난다. 그래서 ” 정렬” 이라는 한마디만으로는 그 알고리즘이 언제 유리한지 알 수 없다.
한 번의 연산이 아니라 연산 여러 번의 평균 비용을 따지는 방식은 amortized analysis 에 있다.
흔한 증가율
비교 기반 정렬은 보다 빠를 수 없다는 하한이 증명돼 있다. 이상이 되면 이 조금만 커져도 현실적으로 계산이 끝나지 않는데, 다항 시간 알고리즘이 알려져 있지 않은 문제들의 분류는 NP-complete 를 참고한다.