더북(TheBook)

3.2 빅 오의 본질에서 살펴봤듯이 빅 오 표기법은 단지 알고리즘에 필요한 단계 수만 의미하지 않는다. 데이터가 늘어날 때 알고리즘 단계 수가 장기적으로 어떤 궤적을 그리는지가 중요하다. O(N)은 직선 성장(straight growth)을 보여준다. 즉 단계 수가 데이터에 일정 비율로 비례해 직선을 그리며 증가한다. 이와 달리 O(N2)은 지수 성장(exponential growth)의 하나다.

지수 성장은 어떤 형태의 O(N)과도 비교되지 않는 완전히 다른 카테고리이다. O(N)에 어떤 수를 곱하든 데이터가 커지다 보면 언젠가 결국 O(N2)이 더 느려진다는 사실을 깨달으면 완벽히 이해가 간다.

다음의 그래프에서 볼 수 있듯이 N에 여러 상수를 곱해도 O(N2)이 느리다.

▲ 그림 5-27

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