코딩테스트

[알고리즘] 시간 복잡도, 공간 복잡도, 빅오 표기법

UnaUna 2025. 6. 3. 02:13
반응형

🚀 복잡도란?

  • 알고리즘의 성능, 효율성을 나타내는 척도로 시간 복잡도 공간 복잡도로 나눌 수 있다.
  • 복잡도를 나타내는 방법으로는 점근 표기법으로 O(빅오), Ω(오메가), Θ(세타) 등이 있고, 주로 빅오와 세타 표기법이 많이 사용된다.

 

🚀 빅오 표기법

  • 알고리즘을 성능을 수학적으로 표기해주는 표기법
  • 복잡도를 나타내는 점근 표기법 중 가장 많이 사용되는 표기법
  • 시간과 공간 복잡도를 표현할 수 있다.
  • N: input size 

 

🚀 시간 복잡도(time complexity)

  • 알고리즘의 입력 크기에 따라 실행 시간이 어떻게 변화하는지를 나타낸다.
  • 일반적으로 Big-O 표기법을 사용하여 표현
    • Big-O 표기법은 알고리즘의 최악의 경우를 기준으로 성능을 나타내기 때문
  • 시간 복잡도를 분석할 때는 알고리즘의 각 단계에서 수행되는 기본 연산의 횟수를 계산한다.
  • 이를 통해 알고리즘의 전체 실행 시간을 예측할 수 있으며, 이는 알고리즘의 효율성을 평가하는 데 중요한 기준이 된다.
  • 시간 복잡도를 최적화하는 것은 알고리즘의 성능을 향상시키는 데 중요한 역할을 한다. 이를 통해 더 빠르고 효율적인 알고리즘을 설계할 수 있다.

 

🚀 공간 복잡도

  • 프로그램 실행과 완료에 얼마나 많은 공간(메모리)가 필요한지를 나타낸다.
  • 알고리즘의 입력 크기와 처리 과정에서 사용되는 추가적인 메모리 공간을 고려하여 평가된다.
  • 알고리즘의 메모리 효율성을 평가하는 데 사용되며, 메모리 사용량을 최소화하는 것은 특히 메모리 자원이 제한적인 환경에서 중요하다.
  • 공간 복잡도 역시 Big-O 표기법을 사용하여 표현할 수 있으며, 예를 들어 O(N)은 알고리즘의 메모리 사용량이 입력 크기 N에 비례하여 증가함을 의미한다.

 

 

 

ℹ️ 출처

https://velog.io/@welloff_jj/Complexity-and-Big-O-notation

https://f-lab.kr/insight/understanding-time-and-space-complexity

반응형