[알고리즘] 시간 복잡도

2024. 12. 23. 20:32·알고리즘

시간 복잡도

시간 복잡도(time complexity)란 가장 널리 사용되는 알고리즘의 수행 시간 기준으로, 알고리즘이 실행되는 동안 수행하는 기본적인 연산의 수를 입력의 크기에 대한 함수로 표현한 것입니다.

일반적으로 점근 표기법을 사용하여 시간 복잡도를 나타내며, O(⋯) 형태로 표기합니다. O(⋯) 안에는 입력 크기(n)에 따른 실행 횟수를 함수로 표현합니다.

 

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) 

 

O(1): 상수 시간 복잡도

  • 입력 크기에 상관없이 일정한 시간이 걸리는 알고리즘
  • 예: 주로 수학 공식등을 이용해 답을 바로 계산해내는 문제

O(log n): 로그 시간 복잡도

  • 입력 크기가 커질수록 실행 시간이 느리게 증가
  • 예: 이진 탐색(Binary Search)

O(n): 선형 시간 복잡도

  • 입력 크기에 비례하여 실행 시간이 증가
  • 예: 배열에서 특정 값을 찾는 선형 탐색(Linear Search)

O(n log n): 로그 선형 시간 복잡도

  • 입력 크기가 커질수록 실행 시간이 n과 logn의 곱에 비례하여 증가
  • 예: 효율적인 정렬 알고리즘(예: 퀵 정렬, 병합 정렬, 힙 정렬)

O(n2): 이차 시간 복잡도

  • 입력 크기가 커질수록 실행 시간이 n2에 비례하여 증가합니다.
  • 예: 이중 루프를 사용하는 알고리즘(예: 버블 정렬, 삽입 정렬).

O(2n): 지수 시간 복잡도

  • 입력 크기가 커질수록 실행 시간이 매우 빠르게 증가합니다.
  • 예: 모든 부분집합을 탐색하는 알고리즘(예: 부분집합 합 문제).

O(n!): 팩토리얼 시간 복잡도

  • 입력 크기가 커질수록 실행 시간이 팩토리얼에 비례하여 증가합니다.
  • 예: 모든 순열을 탐색하는 알고리즘.

수행시간을 예상하는 가장 많이 사용되는 방법은 1초에 1억($10^8$)번의 연산이 수행된다고 가정하는 것 입니다.

 

 

 

출처 : 안즈 블로그, 라이 블로그, 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략

'알고리즘' 카테고리의 다른 글

완전 탐색(Brute Force)  (1) 2024.12.26
'알고리즘' 카테고리의 다른 글
  • 완전 탐색(Brute Force)
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    객체지향
    자료구조
    Effective
    컴퓨터구조
    컴퓨터 구조
    내일배움캠프
    c++
    언리얼
    게임수학
    그래픽스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[알고리즘] 시간 복잡도
상단으로

티스토리툴바