시간복잡도(Time Complexity)의 개념

알고리즘을 처리하는데 걸리는 시간



연산을 실행 시간으로 측정하기 어려운 이유

검색이라는 연산을 할 때 최초의 CPU 4004를 탑재한 컴퓨터와 최신 CPU를 탑재한 컴퓨터는 속도에서 큰 차이를 보일 것이다. 같은 CPU라도 작업 프로세서를 많이 띄워놓고 있다면 프로그램 실행이 느려질 수 있다. 이렇게 프로그램 연산 속도를 시간으로 따지는 경우 하드웨어에 따라, 작업 상황에 따라 항상 달라질 수 밖에 없다. 또한, 시간은 정확히 1.00초, 2.00초와 같이 딱 떨어지지도 않을 것이다. 시간으로 측정할 경우, 프로그램 알고리즘뿐만 아니라 다른 요소까지도 고려해야 하는 문제가 생긴다.



실행 횟수(단계 측정)

그래서 연산의 속도를 측정할 때는 ‘시간’이 아니라 ‘단계’ 별로 따진다. 연산 A에서 5단계가 필요하고, 연산 B에서 100단계가 필요하다면, 하드웨어 성능에 상관없이 연산 A가 B보다 빠를 것이라고 가정할 수 있다. 그래서 프로그램을 짤 때는 실행에 필요한 각 단계를 계산해, 이 단계를 가장 최소화하는 방법을 찾는다.