JAVA/자료구조

빅 오 표기법

도전하는일반인 2021. 9. 30. 14:40

들어가기 전에

알고리즘의 효율성은 어떻게 비교할까요? 알고리즘의 효율성을 수학적으로 표시하는 빅 오 표기법에 대해 살펴보도록 하겠습니다.

 

학습 목표

빅 오 표기법을 이해하고, 표기 내용의 의미를 설명할 수 있습니다.

 

핵심 단어

  • 알고리즘 비교
  • 빅 오 표기법

빅 오 표기법

 

빅 오 표기법은 알고리즘의 효율성을 표시하는 표기법입니다. 빅 오 표기법을 사용하면 어떤 알고리즘을 다른 알고리즘과 비교해서 표현하는 것이 가능합니다.

 

 

위 그래프는 복잡도가  nn 인 알고리즘에 빅 오 표기법을 적용한 결과입니다. x축은 복잡도 n, y축은 필요한 일의 양이나 메모리를 의미합니다.

 

다른 알고리즘이 이 그래프의 어떤 위치에 있는지에 따라 복잡도  nn 인 알고리즘과 다른 알고리즘의 복잡도를 비교할 수 있습니다. 다른 알고리즘이 복잡도  nn 인 알고리즘의 아래에 있다면, 같은 일을 하는 데 시간이 덜 들기 때문에 더 빠른 알고리즘이라 합니다. 반대로, 복잡도  nn 인 알고리즘의 위에 있다면, 더 느린 알고리즘입니다.

 

빅 오 표기법에서는 이러한 알고리즘 간의 관계를 다음과 같이 표현합니다.

- O (빅 오 복잡도) : 비교 대상인 그래프가 일치 혹은 아래에 있을 때. 비교 대상인 다른 알고리즘과 같거나 더 빠르다.

- θ (세타 복잡도) : 비교 대상인 그래프가 일치할 때. 비교 대상인 다른 알고리즘과 같다.

- Ω (빅 오메가 복잡도) : 비교 대상인 그래프가 일치 혹은 위에 있을 때. 비교 대상인 다른 알고리즘과 같거나 느리다.

- o (리틀 오 복잡도) : 비교 대상인 그래프가 아래에 있을 때. 비교 대상인 다른 알고리즘보다 더 빠르다.

- ω (리틀 오메가 복잡도) : 비교 대상인 그래프가 위에 있을 때. 비교 대상인 다른 알고리즘과 느리다.

 


 

생각해보기


1) 빅 오 표기법을 각각 부등호에 대응하면 어떤 것인가요?
2) 빅 오 표기법의 O는 무엇의 약자일까요? 

 

 

나의 생각 :

1) 

- O (빅 오 복잡도) :  O <= 같거나 숫자가 작거나

- θ (세타 복잡도) :  θ  = 같다

- Ω (빅 오메가 복잡도) : Ω >= 같거나 숫자가 크거나

- o (리틀 오 복잡도) :  o < 숫자가 작다.

- ω (리틀 오메가 복잡도) : . ω > 숫자가 크다. 

2) 비교 대상이랑 같거다 빠르거나 (빅 오 복잡도)

 

 

출처 : https://www.boostcourse.org/cs204/lecture/480381?isDesc=false 네이버커넥트재단

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

Comparable 인터페이스  (0) 2021.10.01
객체지향 프로그래밍  (0) 2021.09.30
빅 오 표기법 예시  (0) 2021.09.30
복잡성 소개  (0) 2021.09.30
자료구조의 시작  (0) 2021.09.30