계수 정열 알고리즘은 기존 비교 알고리즘과 다르게 데이터 값을 서로 비교하지 않고,
원본 데이터의 원소 개수를 세어 정렬하는 알고리즘입니다
먼저 원본 배열의 원소 중 최댓값을 찾습니다
그리고 최댓값의 크기만큼 카운팅 배열을 새롭게 만듭니다
원본 배열을 탐색하며, 각 원소의 개수를 카운팅 배열에 저장합니다
누적합 방식을 이용해 카운팅 배열에 이전까지의 원소 개수를 저장합니다
이제 원본 배열의 뒤에서부터 데이터를 탐색하며 누적합을 기준으로 각 숫자를 정렬된 위치에 배치합니다
계수 정렬 알고리즘의 시간복잡도에 대해 알아보겠습니다
O(n+k)
로 값의 범위와 데이터 개수에 의존합니다그리고 이 시간복잡도는 평균,최악,최선의 상황 모두에서 동일한 성능을 보장합니다
계수정렬 알고리즘은 비교기반 알고리즘과 다르게, 원본배열의 원소 개수를 바탕으로 정렬하는 알고리즘입니다
원소 개수나 값이 작을 수록 좋은 성능을 보이나, 한가지라도 큰 경우 메모리 사용량이 커져 비효율적입니다