Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

시간 복잡도와 공간 복잡도 본문

자료구조

시간 복잡도와 공간 복잡도

야식은진리다 2019. 8. 25. 15:33

알고리즘의 성능을 평가하기 위해서 시간 복잡도와 공간 복잡도라는 개념이 사용된다.

시간 복잡도는 속도에 관한 것이고, 공간 복잡도는 메모리 사용량에 관한 것이다.

 

하지만 알고리즘의 속도를 재기란 매우 힘든 일이다. 컴퓨터의 연산 속도에 따라 다르고, 같은 컴퓨터에서 잰다 하더라도 시간은 다르게 나오게 된다. 그래서 알고리즘의 속도를 재기 위해서는 연산 횟수를 세고, 처리할 데이터의 수 n에 대한 연산 횟수를 계산하는 함수 T(n)을 만든다.

함수 T(n)을 만드는 이유는 데이터의 수가 늘어남에 따라 연산 횟수의 변화를 알아내기 위함이다. T(n)을 구성하면 아래와 같이 그래프를 통해 데이터수에 따른 연산 횟수 변화를 한눈에 볼 수 있다.

 

 

그렇다면 위와 같이 알고리즘 A와 B가 있다고 가정해보자. 데이터가 적을 땐 B가 더 빠르고, 데이터가 많을 땐 A가 더 빠르다. 그렇다면 우리는 어떤 알고리즘을 사용해야 할까?

정답은 A이다. 그 까닭은 데이터의 수가 적을 땐 속도 차이가 크지 않기 때문이다. 중요하게 봐야 할 것은 데이터의 수가 증가함에 따른 수행 속도의 증가이다.

 

그렇기 때문에 알고리즘을 평가할 때 중요한 것은 최선의 경우( 가장 빠를 때 )가 아니라 최악의 경우( 가장 느릴 때 )이다.

'자료구조' 카테고리의 다른 글

연결 리스트 Linked List  (0) 2019.12.21
추상 자료형 Abstract Data Type  (0) 2019.12.15
빅 오 표기법 Big-Oh Notation  (0) 2019.08.29
자료구조란  (0) 2019.08.25