[CS기초] 알고리즘 복잡도(Big-O Notation)

2025. 3. 19. 17:44·크래프톤 정글/CS기초(키워드, 개념정리)

Big-O 표기법

알고리즘의 성능을 분석할 때에는 시간 복잡도와 공간 복잡도를 고려해야 하는데요. 이를 표현하는 대표적인 방법이 Big-O 표기법입니다.

  • 알고리즘의 실행 시간 또는 메모리 사용량이 입력 크기(n)에 따라 어떻게 변하는지 나타내는 표기법
  • 보통 최악의 경우(Worst Case)를 기준으로 성능을 분석
  • 가장 큰 차수만 나타내고, 계수는 무시 ( 예) O(3N + 5) → O(N) )

 

시간 복잡도 (Time Complexity)

알고리즘이 실행되는 데 걸리는 연산 횟수의 증가율을 나타냅니다.

주요 시간 복잡도 유형

시간 복잡도 설명 예제
O(1) 상수 시간. 입력 크기에 관계없이 실행 시간이 일정 배열 인덱싱, 스택 push / pop
O(logN) 로그 시간. 입력 크기가 2배가 되어도 실행 시간은 조금만 증가 이진 탐색
O(N) 선형 시간. 입력 크기에 비례해 실행 시간 증가 배열 순회
O(NlogN) 선형 로그 시간. 대부분의 정렬 알고리즘이 여기에 속함 퀵 정렬(평균), 병합 정렬
O(N2) 이차 시간. 입력 크기 증가에 따라 실행 시간이 급격히 증가 버블 정렬, 삽입 정렬
O(2n) 지수 시간. 입력 크기 증가에 따라 실행 시간이 매우 급격히 증가 피보나치 재귀
O(N!) 팩토리얼 시간. 입력 크기 증가에 따라 실행 시간이 매우매우 급격히 증가 순열 생성

 

 

공간 복잡도 (Space Complexity)

알고리즘이 사용하는 메모리 공간의 증가율을 나타냅니다. 다만, 컴퓨터 성능이 좋아짐에 따라 시간 복잡도에 비해 중요도가 점점 낮아지고 있습니다.

  • 변수 사용 → O(1) (상수 공간)
    • 단순한 변수 저장 (O(1))
  • 배열, 리스트 등 사용 → O(N)
    • N개의 원소를 저장하는 배열 (O(N))
  • 배열 등의 차원이 늘어날 때마다 → O(N2), O(N3) 증가
    • N x N 행렬 (O(N2))
저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글

[CS기초] 완전 탐색(Brute Force)  (0) 2025.03.19
[CS기초] 정렬(Sort)  (0) 2025.03.19
[CS기초] 반복문(Loop), 재귀 함수(Recursion Function)  (0) 2025.03.19
[CS기초] 배열(Array), 문자열(String)  (0) 2025.03.19
[CS기초] 32비트 vs 64비트 차이점  (0) 2025.03.18
'크래프톤 정글/CS기초(키워드, 개념정리)' 카테고리의 다른 글
  • [CS기초] 완전 탐색(Brute Force)
  • [CS기초] 정렬(Sort)
  • [CS기초] 반복문(Loop), 재귀 함수(Recursion Function)
  • [CS기초] 배열(Array), 문자열(String)
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어) N
        • 마이 정글(WIL, 에세이) N
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CS기초] 알고리즘 복잡도(Big-O Notation)
상단으로

티스토리툴바