Skip to main content

알고리즘 시간복잡도, 공간복잡도

· 3 min read

알고리즘 시간복잡도, 공간복잡도 개념

  • 시간복잡도: 주어진 입력에 따라 알고리즘이 실행되는데 걸리는 시간의 양
  • 공간복잡도: 주어진 입력에 따라 필요한 저장 공간의 양
  • 성능 예측, 효율성 비교, 자원 최적화

알고리즘 복잡도 표기법, 시간복잡도, 공간복잡도

알고리즘 복잡도 표기법

구분내용비고
Big O알고리즘이 최악의 성능일 때 평가일반적 분석
Big Ω알고리즘이 최상의 성능일 때 평가최적 상황 분석
Big θ알고리즘의 평균 성능 평가전반적 성능 분석
  • 주로 Big O 표기법으로 알고리즘의 복잡도 평가 및 측정

알고리즘 시간복잡도

구분내용사례
O(1)O(1)상수 시간복잡도, 입력 크기와 관계 없이 실행해시테이블
O(logn)O(logn)로그 시간복잡도, 입력에 따라 로그에 비례이진 검색
O(n)O(n)선형 시간복잡도, 입력에 따라 시간 증가선형 검색
O(nlogn)O(nlogn)선형로그 시간복잡도, 효율적 정렬 알고리즘병합정렬, 퀵정렬
O(n2)O(n^2)이차 시간복잡도, 중첩 루프 사용버블정렬, 삽입정렬
O(2n)O(2^n)지수 시간복잡도, 피보나치 수열 계산피보나치 재귀
O(n!)O(n!)팩토리얼 시간복잡도, 매우 비효율적순열 생성

알고리즘 공간복잡도

구분내용사례
O(1)O(1)상수 공간복잡도, 입력 상관없이 일정 공간 사용스왑 알고리즘
O(n)O(n)선형 공간복잡도, 입력 크기 비례 공간 사용배열, 리스트
O(n2)O(n^2)이차 공간복잡도, 이차원 배열 사용 공간행렬 곱셈

알고리즘 복잡도 측정방법

구분시간복잡도공간복잡도
실제 측정실행시간 측정하여 복잡도 측정메모리 프로파일러 통한 사용량 측정
이론적 측정빅오 표기법 등 복잡도를 수학적 유도로 분석알고리즘이 사용하는 변수, 자료구조 분석
  • 데이터의 정렬 여부, 중복 여부에 다른 알고리즘의 성능 차이 고려