5.5 빅 오 카테고리
이제 빅 오에 담긴 또 하나의 개념을 살펴볼 차례다. 빅 오 표기법은 일반적인 카테고리의 알고리즘 속도만 고려한다.
실제 건물에 비유해서 논해 보자. 건물의 종류는 당연히 매우 다양하다. 단층 단독 주택, 2층 단독 주택, 3층 단독 주택이 있다. 층수가 다양한 고층 아파트도 있다. 높이와 모양이 제각각인 고층 건물도 있다.
하나는 단독 주택이고 하나는 고층 건물인 두 건물을 비교할 때 굳이 각각이 몇 층인지 언급할 이유가 없다. 두 건물의 크기와 기능이 현저히 달라서 “이 건물은 2층짜리 집이고, 저 건물은 100층짜리 고층 건물입니다.”라고 말할 필요가 없는 것이다. 하나는 집이라 부르고 나머지 하나는 고층 건물이라고 부르는 편이 낫다. 일반적인 카테고리로만 분류해도 현저한 차이를 나타내기 충분하다.
알고리즘의 효율성도 마찬가지다. 가령 O(N) 알고리즘과 O(N2) 알고리즘을 비교할 때 두 효율성 간 차이가 너무 커서 O(N)이 실제로 O(2N)이든 O(N / 2)이든 심지어 O(100N)이든 별로 중요하지 않다.
그래서 O(N)과 O(100N)은 같은 카테고리로 분류하고, O(N)과 O(N2)은 별개의 카테고리로 분류한다.