카운팅 정렬 계산기
정수 나열을 넣으면 값끼리 크기를 견주지 않고 등장 횟수·누적합만으로 정렬하는 카운팅 정렬 과정을 표로 보여줍니다.
쉼표나 공백으로 구분합니다. 200개까지.
정렬 결과
0, 0, 2, 2, 3, 3, 3, 5
값별 등장 횟수 → 누적합
| 값 | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 등장 횟수 | 2 | 0 | 2 | 3 | 0 | 1 |
| 누적합 | 2 | 2 | 4 | 7 | 7 | 8 |
값의 범위0 ~ 5
원소 개수8
원소끼리 크기를 견주지 않고 값마다 등장 횟수를 세어 정렬합니다. 누적합이 그 값을 가진 원소가 차지할 마지막 자리 번호가 되고, 원본을 뒤에서부터 훑으며 자리를 채워야 같은 값끼리 원래 순서가 유지됩니다(안정 정렬). 값의 범위가 원소 개수보다 훨씬 크면 오히려 느려집니다.
사용 방법
- 1정렬할 정수를 쉼표나 공백으로 구분해 넣습니다.
- 2값별 등장 횟수와 그 누적합을 확인합니다.
- 3정렬 결과를 확인합니다.
자주 묻는 질문
두 원소를 직접 비교하는 대신, 값마다 등장 횟수를 센 뒤 누적합을 구해 "이 값보다 작거나 같은 원소가 몇 개인가"를 바로 알아내기 때문입니다. 그 개수가 곧 결과 배열에서 그 값이 차지할 자리 번호가 됩니다.
안정 정렬(같은 값의 원소들이 원래 순서를 유지하는 것)을 만들기 위해서입니다. 뒤에서부터 배치하면 같은 값 중 원본에서 나중에 있던 원소가 먼저 그 값의 "가장 뒤" 자리를 차지하게 되어, 앞쪽에 있던 원소일수록 앞쪽 자리에 남습니다.
아닙니다. 값의 범위(최댓값−최솟값)가 원소 개수보다 훨씬 크면 오히려 손해입니다. 예를 들어 정수 10개를 정렬하는데 값이 0부터 10억까지 흩어져 있다면, 카운팅 배열을 10억 칸 만들어야 해 비교 기반 정렬보다 훨씬 느리고 메모리도 많이 씁니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 정수만 다룰 수 있습니다(실수·문자는 정렬할 수 없습니다).
- 값의 범위가 2000을 넘거나 원소가 200개를 넘으면 계산하지 않습니다. dev/sorting-steps(버블·선택·삽입·병합·퀵·힙)는 비교 기반 정렬만 다루고, 이 도구는 비교를 하지 않는 선형시간 정렬 계열입니다.
- 무작위 배열 300개에서 자바스크립트의 기본 정렬(Array.prototype.sort)과 결과가 정확히 같은지, 같은 값을 가진 원소들의 원래 순서가 유지되는지(안정성)를 확인했습니다.
함께 보면 좋은 도구
정렬 횟수숫자를 넣으면 버블·선택·삽입·병합·퀵·힙 정렬의 비교 횟수와 교환·이동 횟수를 한 표에서 견줍니다.기수 정렬정수 나열을 넣으면 1의 자리부터 높은 자리까지 자릿수별로 안정 정렬을 반복하는 기수 정렬(LSD) 과정을 단계별로 보여줍니다.시간복잡도입력 크기를 넣으면 O(1)부터 O(n!)까지 아홉 가지 시간복잡도의 연산 횟수와 예상 실행 시간을 한눈에 비교합니다.gitignore 판정.gitignore 규칙과 경로를 넣으면 그 파일이 무시되는지, 어느 줄이 마지막으로 이겼는지 알려줍니다.울프람 규칙규칙 번호 0~255를 8비트로 풀어 세 칸 이웃에 대응시키고 세대를 쌓아 무늬를 그립니다.
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.