시간복잡도 비교 계산기
입력 크기를 넣으면 O(1)부터 O(n!)까지 아홉 가지 시간복잡도의 연산 횟수와 예상 실행 시간을 한눈에 비교합니다. 정해진 시간 안에 감당 가능한 최대 n도 역산합니다.
n = 1,000,000 일 때 정렬(O(n log n))
199 ms
같은 n 으로 이중 반복문(O(n²))을 돌리면 2.78 시간
1초 안에 끝낼 수 있는 최대 n
어디서 나오는 복잡도인가
사용 방법
- 1입력 크기 n을 넣습니다. 아래 버튼으로 흔한 크기를 바로 넣을 수 있습니다.
- 2쓰는 언어에 맞는 초당 연산 횟수를 고릅니다.
- 3복잡도별 연산 횟수와 예상 시간, 그리고 정해진 시간 안에 감당 가능한 최대 n을 확인합니다.
자주 묻는 질문
입력이 커질 때 연산 횟수가 얼마나 빨리 늘어나는지를 나타냅니다. 상수 배와 낮은 차수 항은 버리므로 2n² + 5n + 3은 그냥 O(n²)입니다. 실제 실행 시간이 아니라 자라는 속도를 비교하는 도구라서, n이 작으면 O(n²)가 O(n log n)보다 빠를 수도 있습니다.
O(n log n)이므로 약 2천만 번의 연산입니다. 초당 1억 번을 처리하는 환경이라면 0.2초쯤 걸립니다. 같은 100만 개를 이중 반복문(O(n²))으로 돌리면 1조 번이 되어 세 시간 가까이 걸립니다.
초당 1억 번을 기준으로 1초 안에 끝내려면 O(2ⁿ)는 n이 26까지, O(n!)은 11까지입니다. 코딩 테스트에서 n ≤ 20이면 비트마스크 완전탐색을, n ≤ 10이면 순열 전체 탐색을 떠올리라는 말이 이 계산에서 나옵니다.
보통의 실수형으로 담을 수 없을 만큼 크기 때문입니다. 2¹⁰⁰⁰은 10의 301제곱, 1000!은 10의 2567제곱이라 계산 도중에 넘쳐버립니다. 그래서 이 계산기는 전부 상용로그로 계산하고 결과만 지수 표기로 되돌립니다.
빅오에서는 밑이 달라도 상수 배 차이라 표기상 구별하지 않습니다. 다만 이 계산기는 이진 탐색을 기준으로 밑을 2로 잡았습니다. 100만 개를 이진 탐색하면 20번 남짓이면 끝난다는 감각을 주기 위해서입니다.
알아두면 좋은 점
- 초당 연산 횟수는 언어와 하드웨어, 연산의 종류에 따라 크게 달라지는 어림값입니다.
- 메모리 접근 패턴(캐시 적중률)이 실제 속도를 몇 배씩 바꾸므로 복잡도만으로 성능을 단정할 수 없습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 29일 · 결과는 참고용 추정치입니다.