시간 복잡도란?
입력데이터가 n개 있을 떄, 최악의 경우의 연산 횟수를 n의 함수로 나타낸 것.
왜 입력데이터가 n개일 때인가?
알고리즘 A, B가 있을 때 두 가지 상황을 가정하자.
1. 입력 데이터가 다른 상황
A는 3초가 소요되는 알고리즘이고, B는 7초가 소요되는 알고리즘이다.
하지만 그렇다고 A가 더 빠른 알고리즘이라고 할 수 없다. 두 알고리즘에 대한 입력 값이 서로 다를 수 있기 때문이다.
2. 입력 데이터가 같아도 상황에 따라 다를 수 있다.
예를 들어, 10개의 데이터에 한해서는 A가 B보다 빠를 수 있지만, 10000개의 데이터에 한해서는 B가 더 빠를 수 있다.
결론: 그렇기 때문에 입력 데이터가 n개 일때, 최악의 경우의 연산 횟수를 n의 함수로 나타낸 것이 시간 복잡도 Big-O로 정하게 되었다.
Big-O 표기법 구하기
시간 복잡도 f(n)을 구했다면, 최고 차항의 변수 부분만 남겨야 시간복잡도가 된다.
예를 들어,
f(n) = O(3n2 + 4n)이 있다면, 최고 차항 변수인 n2만 남기면 된다.
'개발 > 알고리즘' 카테고리의 다른 글
[백준 / Python] 연구소_14502 (0) | 2021.05.20 |
---|---|
[ 백준 / Python ] 피보나치의 수 (0) | 2021.05.14 |
[ 삼성 기출 / Python ] 청소년 상어 (0) | 2021.05.09 |
[백준 / Python] 음악프로그램_2623 (0) | 2021.05.03 |
[백준 / Python] 게임 개발_1516 (0) | 2021.05.02 |