Breath everything
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
블로그 내 검색

Breath everything

이것 저것

  • IT/자료구조 & 알고리즘

    시간 복잡도(Time Complexity) & 공간 복잡도(Space Complexity)

    2021. 7. 30.

    by. ziasu

    반응형

    1. 시간 복잡도(Time Complexity)

    -> 알고리즘 실행 속도

    -> 가장 영향을 많이 미치는 요소는 반복문

    -> 상수는 큰 영향을 주지 못함

     

    (Big O 표기법)

    • 가장 일반적으로 사용
    • 알고리즘의 최악의 실행 시간을 나타냄
    • 입력 n에 따라 몇 번 실행되는지를 계산

    O(1): 데이터가 증가함에 따라 성능에 변화가 없을 때 ex) 조건문

    O(n): n에 따라 n번, n+50번 등 실행 ex) 반복문 1개

    O(n^2): n에 따라 n^2번, n^2+3n+1번 등 실행 ex) 반복문 2개

    O(logn): 한번 처리가 진행될 때마다 검색해야 하는 데이터 양이 절반씩 줄어듦 ex) binary search

    O(nlogn): 여러 작은 부분으로 쪼개서 각각 해결한 후 마지막에 각각의 부분들을 모으는 경우 ex) merge sort

     

     


    2. 공간 복잡도(Space Complexity)

    -> 알고리즘이 사용하는 메모리 사이즈

    -> 시간 복잡도가 우선되긴 하지만 대략적인 파악은 필요할 때가 있음

     

    몇 가지 예시를 들어가며 내용을 정리해보자...


    def func(N):
        for i in range(N):
            print(i)

    N값에 상관없이 변수 N의 공간만 필요하다 -> O(1)

     


    def func(N):
        arr = [0]*N
        return arr

    N값만큼의 리스트 공간이 필요하다 -> O(N)

     


    def func(N):
        if n>1:
            return n*func(n-1)
        else:
            return 1

    N값만큼 변수 N이 생성된다 -> O(N)

    반응형
    저작자표시 (새창열림)

    'IT > 자료구조 & 알고리즘' 카테고리의 다른 글

    [알고리즘] 퀵 정렬(Quick Sort) (Python)  (0) 2021.08.04
    [알고리즘] 재귀 용법(Recursive Call) (Python)  (0) 2021.08.04
    [알고리즘] 삽입정렬(Insertion Sort) (Python)  (0) 2021.07.29
    [알고리즘] 선택정렬(Selection Sort) (Python)  (0) 2021.07.29

    댓글

    관련글

    • [알고리즘] 퀵 정렬(Quick Sort) (Python) 2021.08.04
    • [알고리즘] 재귀 용법(Recursive Call) (Python) 2021.08.04
    • [알고리즘] 삽입정렬(Insertion Sort) (Python) 2021.07.29
    • [알고리즘] 선택정렬(Selection Sort) (Python) 2021.07.29
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
ziasu

티스토리툴바