계수 정렬(countin/카운팅 정렬) 아이디어, 작동원리, 시간 복잡도, 자바 구현 코드
비교 기반의 정렬이 아닌 데이터 기반의 정렬 방식으로 계수 정렬과 기수 정렬이 있다. 데이터 기반의 정렬은 입력 데이터에 대한 메타 정보가 주어지는 정렬로, 비교 기반 정렬의 하한인 O(nlogn)보다 좋은 성능 O(n)을 낼 수 있는 정렬이다. 단, 데이터 분포에 대한 정보가 주어져야 한다. 예를 들어, 아래와 같은 데이터 입력이 주어진다고 할 때, 데이터의 분포는 4 ~ 9이다. int[] arr = {7, 5, 9, 8, 4, 5, 7, 5}; 이 글에서는 데이터 기반 정렬 중 하나인 계수 정렬에 대해 살펴본다. 계수 정렬 아이디어 아이디어는 2가지 부분으로 나뉜다. 1) 입력 값에서 데이터가 발생한 횟수를 구한다. 2) 발생한 횟수를 기반으로 누적 횟수를 구한다. 작동 원리 이 배열을 갖고 작동 ..
2023. 6. 10.