도구스개발

카운팅 정렬 계산기

정수 나열을 넣으면 값끼리 크기를 견주지 않고 등장 횟수·누적합만으로 정렬하는 카운팅 정렬 과정을 표로 보여줍니다.

쉼표나 공백으로 구분합니다. 200개까지.

정렬 결과

0, 0, 2, 2, 3, 3, 3, 5

값별 등장 횟수 → 누적합

012345
등장 횟수202301
누적합224778
값의 범위0 ~ 5
원소 개수8
원소끼리 크기를 견주지 않고 값마다 등장 횟수를 세어 정렬합니다. 누적합이 그 값을 가진 원소가 차지할 마지막 자리 번호가 되고, 원본을 뒤에서부터 훑으며 자리를 채워야 같은 값끼리 원래 순서가 유지됩니다(안정 정렬). 값의 범위가 원소 개수보다 훨씬 크면 오히려 느려집니다.

사용 방법

  1. 1정렬할 정수를 쉼표나 공백으로 구분해 넣습니다.
  2. 2값별 등장 횟수와 그 누적합을 확인합니다.
  3. 3정렬 결과를 확인합니다.

자주 묻는 질문

두 원소를 직접 비교하는 대신, 값마다 등장 횟수를 센 뒤 누적합을 구해 "이 값보다 작거나 같은 원소가 몇 개인가"를 바로 알아내기 때문입니다. 그 개수가 곧 결과 배열에서 그 값이 차지할 자리 번호가 됩니다.

안정 정렬(같은 값의 원소들이 원래 순서를 유지하는 것)을 만들기 위해서입니다. 뒤에서부터 배치하면 같은 값 중 원본에서 나중에 있던 원소가 먼저 그 값의 "가장 뒤" 자리를 차지하게 되어, 앞쪽에 있던 원소일수록 앞쪽 자리에 남습니다.

아닙니다. 값의 범위(최댓값−최솟값)가 원소 개수보다 훨씬 크면 오히려 손해입니다. 예를 들어 정수 10개를 정렬하는데 값이 0부터 10억까지 흩어져 있다면, 카운팅 배열을 10억 칸 만들어야 해 비교 기반 정렬보다 훨씬 느리고 메모리도 많이 씁니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 정수만 다룰 수 있습니다(실수·문자는 정렬할 수 없습니다).
  • 값의 범위가 2000을 넘거나 원소가 200개를 넘으면 계산하지 않습니다. dev/sorting-steps(버블·선택·삽입·병합·퀵·힙)는 비교 기반 정렬만 다루고, 이 도구는 비교를 하지 않는 선형시간 정렬 계열입니다.
  • 무작위 배열 300개에서 자바스크립트의 기본 정렬(Array.prototype.sort)과 결과가 정확히 같은지, 같은 값을 가진 원소들의 원래 순서가 유지되는지(안정성)를 확인했습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.