끄적끄적 코딩
article thumbnail

시간 복잡도란(Time complexity)?

특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간

https://www.notion.so/bd2e8e11678b4032b996da8f94309d6c?v=8995d94463cc4c90b341f09dbd4c5068

시간 복잡도는 주로 빅오 표기법을 사용

최선, 평균, 최악으로 나누어서 표기함

최선 : 실행 시간이 가장 빠른 경우
평균 : 평균 수행 시간
최악 : 실행 시간이 가장 느릴 경우 

ex) 퀵정렬의 경우 최선, 평균 시간복잡도는 O(nlogn)이며, 최악 시간복잡도는 O(n²)

빅오 표기법

알고리즘의 효율을 분석하고 비교하는데 쓰이는 개념
최악의 경우를 고려하여 쓰여짐
상한 점근 표기법

계수와 낮은 항을 제외시킴

ex) 3n² + 2n -1  => O(n²)
ex) 3n => O(n)
ex) 10 => O(1)


공간 복잡도란(Space complexity)?

프로그램을 실행시킨 후 완료하는 데 필요로 하는 자원 공간의 양

총 공간 요구 = 고정 공간 요구 + 가변 공간 요구
S(P)=c+SP(n)

고정 공간
코드 저장 공간, 단순 변수, 고정 크기의 구조 변수, 상수

가변 공간
동적으로 필요한 공간

 

* 시간 복잡도와 공간 복잡도는 반비례적 경향이 있음
* 알고리즘의 척도는 시간 복잡도 위주로 판단

검색 태그