자료구조&알고리즘

[알고리즘] 계수 정렬 (Counting Sort)

순늘봄 2023. 10. 23. 09:55

계수 정렬: 크기를 기준으로 개수를 세어 정렬

→ 위치를 바꿔가며 정렬하는 것이 아님

 

시간 복잡도: O(N)  (모든 데이터의 크기 범위를 메모리 상에 표현할 수 있다면)

 

#include <iostream>
#include <algorithm>

using namespace std;



int main() {
	cin.tie(NULL);
	cout.tie(NULL);
	cin.sync_with_stdio(false);
	
	int cnt[11] = { 0 };
	int arr[] = { 1,5,8,4,6,9,5,5,1,3,2,4,7,8,2,4,1,1,7,10 };

	for (int i = 0; i < 20; i++) {
		cnt[arr[i]]++;
	}
	for (int i = 1; i <= 10; i++) {
		if (cnt[i] != 0) {
			for (int j = 1; j <= cnt[i]; j++) {
				cout << i << " ";
			}
		}
	}
}