시간 복잡도는 알고리즘을 구현할 때, 효율적인 방법을 찾기 위해 고려하는 것으로, "값의 변화에 따라 연산을 수행할 때, 연산 횟수에 비해 시간이 얼만큼 걸리는가" 에 대한 개념이다.
시간 복잡도arrow-up-right는 크게 세 가지로 나눌 수 있다.
Big-O(빅-오) : 상하 점근(최악의 경우를 고려)
Big-O
Big-Ω(빅-오메가) : 하한 점근(최선의 경우를 고려)
Big-Ω
Big-θ(빅-세타) : 그 둘의 평균
Big-θ
가장 많이 사용되는 것은 Big-O로 최악의 경우를 고려하므로 프로그램이 실행되는 과정에서 소요되는 최대의 시간을 고려할 수 있다.
"최소한 특정 시간 이상이 걸린다" 또는 "이 정도 시간이 걸린다"를 고려하는 것보다 "이 정도 시간까지 걸릴 수 있다" 를 고려해야 그에 맞는 대응이 가능하기 때문에 개발을 하는 데에 있어서는 Big-O로 시간 복잡도를 계산한다.
시간 복잡도 순서
O(1) < O(log N) < O(N) < O(N log N) < O(N^2) < O(2^N) < O(N!)
O(1)
O(log N)
O(N)
O(N log N)
O(N^2)
O(2^N)
O(N!)
Last updated 3 months ago