Contents
백준이나 코드업 등 코딩 테스트에서 진행하는 알고리즘들에서 빅오(Big-O)라는 단어는 많이들 들어봤을 것이다. 그렇다면 빅오메가, 빅세타는 무엇일까? 먼저 빅오부터 알아보자.
빅-오(Big-O)
빅오는 코딩 테스트에서 시간복잡도를 다룰 때 주로 사용된다. 대개 최악의 경우를 의미하며,

빅-오메가(Big-Omega)
빅오메가는 빅오와는 반대되는 개념이다. 빅오는 최대 얼마나 걸리는지를 다루었다면, 빅오메가는 최소 얼마만큼 걸렸는지를 다루는 용어이다. 빅오와 다른점은 부등호의 방향이 반대이기 때문에 위에서 언급한 것들의 효율적인 순서가 역순입니다.
가장 이상적인 알고리즘은 빅오와 빅오메가 둘다 낮은 알고리즘이지만 실제 대부분의 알고리즘은 빅오와 빅오메가가 반비례하는 관계를 가지고 있기에 둘 다 낮은 알고리즘은 존재하지 않는다고 한다. 둘 중 하나를 선택하라고 한다면 빅오가 낮은 알고리즘이 조금 더 낫다고 한다.
빅-쎄타(Big-Theta)
빅세타는 빅와 빅오메가의 가운데라고 할 수 있다. 평균적인 복잡도를 의미하나 일반적으로는 잘 사용하지 않는다고 한다. 평균적인 복잡도보다는 최선 혹은 최악의 상황에서 알고리즘을 많이 사용하기 때문이다.
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] 달리기 경주 - Python (0) | 2023.08.24 |
---|---|
[Algorithm] sort()와 sorted()의 차이점 (2) | 2022.08.18 |
[Algorithm] List, Dictionary의 시간 복잡도 (0) | 2022.08.18 |
[Python] python에서 pickle file 다루기 (0) | 2022.06.20 |
array와 asarray의 차이 (0) | 2022.05.09 |