시간복잡도, 시간제한, 빅오(Big-O) 표기법

2023. 6. 5. 20:26·Coding Test
728x90

1초 제한

n으로 구성된 O( )를 계산했을 때의 값이 1억 정도면 1초 정도의 시간이 걸린다고 한다.

 

예를 들어 N의 최대값이 10만이라고 문제에서 주어진다면

1. O(N) 의 시간복잡도일 경우에 값이 10만 정도이니, 1/1000초 정도가 걸릴 것이라고 예상할 수 있다.

2. O(N^2)의 시간복잡도의 경우에 값은 100억이므로, 100초 정도가 걸릴 것이라고 예상할 수 있다.

 

보통 1초가 걸릴 때 입력의 최대 크기를 살펴보면

  • O(N): 약 1억
  • O(N^2) : 약 1만
  • O(N^3) : 약 500
  • O(2^N) : 약 20
  • O(N!): 10

 

N의 크기에 따른 허용 시간 복잡도

N의 크기 시간복잡도
N ≤ 11 O(N!)
N ≤ 25 O(2N)
N ≤ 100 O(N4)
N ≤ 500 O(N3)
N ≤ 3,000 O(N2logN)
N ≤ 5,000 O(N2)
N ≤ 1,000,000 O(NlogN)
N ≤ 10,000,000 O(N)
N > 10,000,000 O(logN), O(1)

 

복잡도 소요 시간 예시

  • O(1)
    • 스택 Push, Pop
  • O(log n)
    • 이진 트리
  • O(n log n)
    • 퀵 정렬
    • 병합 정렬
    • 힙 정렬
  • O(n)
    • for문 (하나의 루프를 사용하여 단일 요소 집합을 반복하는 경우)
    • 컬렉션의 절반 이상을 반복하는 경우
  • O(n^2)
    • 이중 for문 (두 개의 중첩 루프를 사용하여 단일 컬렉션을 반복하는 경우)
    • 삽입 정렬
    • 버블 정렬
    • 선택 정렬
  • O(C^n)
    • 피보나치 수열

 

 

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'Coding Test' 카테고리의 다른 글
  • 최장 증가 수열(LIS) 정리
  • 동전 문제 유형 정리 (greedy, DFS, DP)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (461)
      • AI (1)
      • Infra (13)
        • Architecture (2)
        • Kubernetes (5)
        • Docker (3)
        • Cloud (1)
        • DevOps (1)
        • Monitoring (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Spring (19)
      • JPA (4)
      • Language (9)
        • Kotlin (1)
        • Java (8)
      • Git (4)
      • DB (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Algorithm
    LIS
    덱
    정렬
    그래프
    파이썬
    스택
    DP
    최소신장트리
    최대공약수
    힙
    조합
    동적계획법
    알고리즘
    자료구조
    최단거리
    플로이드워셜
    이분탐색
    구현
    트리
    큐
    월간코드챌린지
    그리디
    BFS
    다익스트라
    재귀
    백준
    DFS
    프로그래머스
    구간합
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
시간복잡도, 시간제한, 빅오(Big-O) 표기법
상단으로

티스토리툴바