-
시간복잡도: 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 걸리는 시간
- 효율적인 알고리즘은 시간복잡도를 최소화한 알고리즘을 구성했다는 이야기
-
시간복잡도의 표기법: Big-O(빅-오), Big-Ω(빅-오메가), Big-θ(빅-세타)
- 시간복잡도를 각각 최악, 최선, 중간(평균)의 경우에 대하여 나타내는 방법
-
Big-O 표기법: 가장 자주 사용되는 표기법, 최악의 경우를 고려하는 방법
- O(1): constant complexity, 입력값의 크기와 관계없이, 즉시 출력값을 얻어낼 수 있음
![](https://velog.velcdn.com/images%2Febiny%2Fpost%2Ffcc25518-48ec-4505-be45-804267428db7%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-12-14%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.54.54.png)
- O(n): linear complexity, 입력값의 증가에 시간 또한 같은 비율로 증가하는 것을 의미
![](https://velog.velcdn.com/images%2Febiny%2Fpost%2F683812de-174a-4b5a-be51-89ac5a6d4aca%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-12-14%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.57.43.png)
- O(log n): logarithmic complexity, Big-O 표기법 중 O(1) 다음으로 빠른 시간 복잡도를 가짐
![](https://velog.velcdn.com/images%2Febiny%2Fpost%2F121391b4-32cd-437b-9a93-9d9897def8da%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-12-14%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.59.35.png)
- BST는 노드를 이동할 때마다 경우의 수가 절반으로 줄어듬
- Up & Down game
- O(n2): n의 2승, quadratic complexity, 입력값의 증가에 시간이 n제곱수의 비율로 증가하는 것을 의미
![](https://velog.velcdn.com/images%2Febiny%2Fpost%2F7db0f53f-7a5c-4ca4-abe9-1fcefbced629%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-12-14%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.02.43.png)
- n3, n5의 경우도 모두 O(n2)로 표기함
- O(2n): 2의 n승, exponential complexity, Big-O 표기법 중 가장 느린 시간복잡도를 가짐
![](https://velog.velcdn.com/images%2Febiny%2Fpost%2Ff5ce77b4-397a-4329-816f-7a2ee2923b26%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-12-14%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.05.14.png)
- O(n!): 재귀로 구현하는 피보나치 수열이 대표적
- 데이터 크기에 따른 시간복잡도
데이터 크기 제한 | 예상되는 시간복잡도 |
---|
n ≤ 1,000,000 | O(n) or O (logn) |
n ≤ 10,000 | O(n2) |
n ≤ 500 | O(n3) |