연산의 개수는 상수가 아니라 입력한 데이터의 개수를 나타내는 n에 따라 변함
위 3가지 Case의 알고리즘의 연산 횟수를 비교해보면 아래와 같이 나타낼 수 있음 (간단하게 나타내기 위해 루프 제어 연산은 제외)
하나의 연산이 t만큼의 시간이 필요하다고 하면 이에 대한 시간 복잡도 함수를 각각 2t, (2n + 1)t, (2n^2 + 1)t 로 나타낼 수 있음
시간 복잡도를 구했으므로 알고리즘의 수행 시간을 측정할 수 있음
위의 예시를 바탕으로 입력값에 따라 어느정도의 시간이 걸리는지를 계산해보자 (편의상 모든 연산에 걸리는 시간은 1ms라고 가정)
입력값이 작을 때는 차이가 크지 않았지만, 입력값이 커질수록 매우 큰 차이가 벌어진다는 것을 볼 수 있음
다항식의 시간 복잡도 함수에서 입력값이 커져감에 따라 각 항의 결과값에 관여하는 정도가 달라지게 됨을 알 수 있음
시간 복잡도와 공간 복잡도를 표시할 때는 각 함수의 모든 항을 표시하지 않으며 상수 계수와 중요하지 않은 항목을 제거한 점근적 표기법을 사용
점근적 표기법에는 Big-θ, Big-O, Big-Ω 등이 있지만 가장 많이 사용되는 것은 Big-O 표기법
Big-O 표기법은 점근적 상한선을 제공
앞선 시간 복잡도 함수를 Big-O 표기법으로 나타내면 각각 O(1), O(n), O(n^2)로 나타낼 수 있음
Big-O 표기법은 아래와 같으며 오른쪽으로 갈수록 상한선이 높아짐
왼쪽에 위치한 시간 복잡도일수록 해당 알고리즘은 빠르다고 할 수 있음
유의할 점은 한 알고리즘이 다른 알고리즘보다 실제로 빠르다고 하더라도 같은 방식으로 표현이 될 수도 있음