Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

빅 오 표기법 Big-Oh Notation 본문

자료구조

빅 오 표기법 Big-Oh Notation

야식은진리다 2019. 8. 29. 23:44

빅 오 표기법이란 알고리즘의 효율성을 표기해주는 표기법,

데이터의 수 n에 따른 연산 횟수를 구하는 함수 T(n)에서 가장 영향이 부분을 따지는 것,

데이터의 수 n의 증가에 따른 연산횟수의 증가 형태를 나타내는 표기법이다.

 

예를 들자면 T(n) = 5n^3+3n+2의 빅오는 n^3이다. 이는 n이 커질수록 n^3가 차지하는 비율이 커지므로 T(n)의 변화 정도가 n^3의 형태를 띠므로 그렇다.

 

위의 말을 간단히 정리하면, T(n)이 다항식으로 표현 된 경우, 최고차 항의 차수가 빅 오가 된다.

예를 들어 T(n) = 5n^3+3n+2은 O(n^3)이 된다.

위 예시에서 5n^3은 n^3이 됐는데, 최고차항의 계수는 빅오에서 중요치 않다, 왜냐하면 5n^3이나 n^3이나 n이 증가할수록 값이 증가하는 추세가 촉진되는 것은 같기 때문이다. 빅오에서 중요한것은 연산 횟수의 증가 형태이다.

 

빅 오 표기법에는 대표적인 빅오가 몇가지 있다.

- O(1)

    상수형 빅-오이다. 데이터 수에 상관없이 연산 횟수가 고정인 알고리즘 유형이다.

- O(logn)

    로그형 빅-오이다. 데이터수의 증가율에 비해 연산횟수의 증가율이 훨씬 낮은 알고리즘이다.

- O(n)

    선형 빅-오이다. 데이터의 수와 연산횟수가 비례하는 알고리즘 유형이다.

- O(nlogn)

    선형로그형 빅-오이다. 데이터의 수가 두 배로 늘어날 때, 연산 횟수는 두배를 조금 넘게 증가한다.

- O(2^n)

    지수형 빅-오이다. 데이터의 수가 증가할 수록 엄청난 연산 횟수의 증가를 보여서 사용하기 힘들다.

'자료구조' 카테고리의 다른 글

연결 리스트 Linked List  (0) 2019.12.21
추상 자료형 Abstract Data Type  (0) 2019.12.15
시간 복잡도와 공간 복잡도  (0) 2019.08.25
자료구조란  (0) 2019.08.25