본문 바로가기

공부/알고리즘

카운팅 정렬 (Counting Sort)

● 코드

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
using ll = long long;
using ii = pair<int, int>;
vector<int>arr(10001);

int main()
{
	// 입력
	int N;
	cin >> N;
	for (int i = 0; i < N; i++)
	{
		int n;
		cin >> n;
		// 카운팅 정렬
		arr[n]++;
	}

	// 출력
	for (int i = 0; i < arr.size(); i++)
	{
		if (arr[i])
		{
			while (arr[i]--)
				cout << i << "\n";
		}
	}
	return 0;
}

 

● 결과 화면

 

● 시간복잡도 : O(N)

 

● BOJ 문제 : 수 정렬하기 3

 

'공부 > 알고리즘' 카테고리의 다른 글

확장 유클리드 호제법 (Extended Euclidean Algorithm)  (1) 2023.02.16
백트래킹 (Backtracking)  (0) 2022.07.10
병합 정렬 (Merge Sort)  (0) 2022.07.09
삽입 정렬 (Insertion Sort)  (0) 2022.07.08
버블 정렬 (Bubble Sort)  (0) 2022.07.08