더북(TheBook)

주어진 숫자의 9단까지만 출력하는 함수의 경우 1번 입력하고, 9번 연산을 수행합니다. 입력이 10만 개라면 10만 개 × 9이고, 이는 곧 9n이므로 O(n)이라고 나타낼 수 있습니다. 또한, 주어진 숫자부터 9단까지 출력하는 함수의 경우 1~9 중 하나의 값이 필요하므로, 최악의 경우를 상정하여 1이 입력이라면 10만 개 × 9 × 9가 되어 81n이 되므로 역시 O(n)이라고 표현할 수 있습니다(평균으로 생각하면 45n 정도됩니다).

이번 예는 이해하기 쉽게 단순화하여 코드를 짠 점도 있지만, 기본적으로 구구단을 계산하는 과정 자체가 항상 동일한 연산량을 가지므로 입력 개수에 영향을 받고, 따라서 O(n) 알고리즘의 오차 범위 이내로 귀결된다는 점을 알 수 있습니다. 따라서 계산이 고정된 횟수 이내로 끝난다면 반복문이나 좀 복잡한 연산을 했더라도 섣부르게 O(n2)이라고 단정 지을 필요가 없습니다. 앞서 언급했지만 빅오 표기법은 코드가 얼마나 복잡하게 돌아가는지에 대해 빠르게 감을 잡기 위한 정도로 사용되는 것이지, 정확한 측정 시간을 위해 사용하는 표기법이 아닙니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.