Oh My Algorithm
Algorithm Guidecomplexity: O(n + k)

계수 정렬 (Counting Sort)

비교 없이 값의 빈도를 세어 정렬하는 non-comparison 알고리즘입니다. 값의 범위 k가 제한적일 때 O(n+k)의 선형 시간에 안정적(stable)으로 정렬할 수 있습니다.

01 알고리즘 작동 원리 탐색

Interactive Step-by-Step
TAP OR HOVER
Counting Sort · non-comparison
40
20
70
30
20
60
40
30

계수 정렬을 시작합니다. 비교 없이 값의 빈도를 세어 O(n+k)에 정렬하는 비교 제외(non-comparison) 알고리즘입니다.

Logic Node1 / 10

02 파이썬 구현 코드

계수 정렬 (Counting Sort)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.

core_implementation.py
def counting_sort(arr):
    k = max(arr) + 1
    count = [0] * k
    for v in arr:
        count[v] += 1
    
    for i in range(1, k):
        count[i] += count[i - 1]
    
    output = [0] * len(arr)
    for i in range(len(arr) - 1, -1, -1):
        output[count[arr[i]] - 1] = arr[i]
        count[arr[i]] -= 1
    return output
Guide Progress0%