빠른 알고리즘을 만들기 위해 가장 먼저 해야 할 일은 바로 알고리즘의 속도를 측정하는 것이다. 이러한 알고리즘의 속도를 비교하는 가장 직관적인 방법은 각각을 프로그램으로 구현한 뒤 같은 입력에 대해 두 프로그램의 수행 시간을 측정하는 것일 것이다. 하지만 이러한 방법은 일반적인 기준이 되기에는 부적합하다. 프로그램의 수행 시간은 사용한 프로그래밍 언어, 하드웨어, 운영체제, 컴파일러까지 수많은 요소에 의해 바뀔 수 있기 때문이다. 그렇다면 알고리즘의 수행 시간을 어떤 기준으로 측정해야 할까? 반복문이 알고리즘 수행 시간을 지배한다. 한 가지 항목이 전체의 대소를 좌지우지하는 것을 지배한다(dominate)라고 표현한다. 알고리즘에서 이러한 역할을 하는 것이 바로 반복문이다. 물론 입력에 상관 없이 항상 ..