더북(TheBook)

다음은 대표적인 빅오입니다.

표 15-1 대표적인 빅오의 종류

O(1)

1은 상수(constant)를 의미합니다. 데이터가 증가해도 연산 횟수는 항상 같습니다.

예 배열(인덱싱을 통해 데이터에 접근할 때)

O(n)

증가 형태가 선형(linear)입니다. 데이터 개수가 늘면 개수에 비례하여 연산 횟수도 증가합니다.

예 연결 리스트(순회)

O(log n)

증가 형태가 로그(logarithmic) 함수의 그래프를 그립니다. 데이터가 증가해도 연산 횟수의 증가율이 매우 낮습니다(그림 15-6 참조). 굉장히 좋은 성능입니다.

예 이진 탐색 트리(탐색)

O(n*log n)

증가 형태가 선형과 로그 형의 곱(linear loagrithmic)으로 나타납니다. 선형 빅오보다는 성능이 떨어지지만, 제곱 형태의 함수(n2)와 비교하면 성능이 월등합니다.

예 퀵 정렬(정렬 알고리즘 중 성능이 가장 좋다고 알려져 있음)

O(n2)

증가 형태가 제곱(quadratic)입니다. 데이터 개수가 적을 때는 이용해도 괜찮지만, 데이터 개수가 조금만 많아져도 연산 횟수가 급격히 늘어나므로 이용하기에 부담스러운 성능입니다.

예 거품 정렬(2절)