도수 정렬의 원리

도수 정렬은 다음과 같은 단계로 이루어집니다.

  1. 카운팅 배열 생성: 정렬할 데이터의 최솟값부터 최댓값까지의 범위를 포함할 수 있는 카운팅 배열(Counting Array)을 만듭니다. 이 배열은 각 숫자의 등장 횟수를 기록하기 위한 용도이며, 모든 값을 0으로 초기화합니다.
  2. 도수 계산: 원래 배열을 순회하면서 각 숫자가 나올 때마다 카운팅 배열의 해당 인덱스 값을 1씩 증가시킵니다. 예를 들어, 원래 배열에서 숫자 3이 나오면 카운팅 배열의 3번째 인덱스 값을 1 증가시킵니다.
  3. 누적 합 계산: 카운팅 배열의 각 인덱스에 이전 인덱스들의 값을 더해 누적 합을 구합니다. 이렇게 하면 각 숫자가 정렬된 배열에서 어느 위치에 들어가야 하는지를 알 수 있습니다.
  4. 정렬된 배열 생성: 새로운 결과 배열을 만듭니다. 원래 배열을 뒤에서부터 순회하면서 각 숫자에 해당하는 카운팅 배열(누적 합)의 값을 보고 결과 배열의 해당 위치에 값을 채워 넣습니다. 값을 채운 뒤에는 카운팅 배열의 값을 1 감소시켜 다음 중복된 값이 올바른 위치에 들어가도록 합니다.

장점과 단점

✅ 장점

❌ 단점


시간 복잡도