기수 정렬 (Radix Sort) 총 정리 - 개념, 원리, 동작 예시, 시간 복잡도, C언어, Java, Python 예시코드, 주의점, 장단점
1. 기수 정렬이란?기수 정렬은 정수를 자리수별로 비교하여 정렬하는 정렬 알고리즘입니다. 가장 낮은 자리수부터 높은 자리수까지 순차적으로 정렬하는 방식(LSD: Least Significant Digit) 또는 높은 자리수부터 낮은 자리수로 정렬하는 방식(MSD: Most Significant Digit)을 사용합니다.계수 정렬을 서브 루틴으로 활용하며, 데이터의 크기와 범위에 따라 매우 효율적입니다. 기수 정렬을 이해하기 위해서는 계수정렬(Counting Sort)에 대한 이해가 선행되어야 합니다.해당 개념은 아래 포스팅에 자세히 정리했습니다.2025.01.02 - [알고리즘] - 계수 정렬 (Counting Sort) 총 정리 - 개념, 원리, 동작 예시, 시간 복잡도, C언어, Java, Pytho..
2025. 1. 2.
계수 정렬 (Counting Sort) 총 정리 - 개념, 원리, 동작 예시, 시간 복잡도, C언어, Java, Python 예시코드, 주의점, 장단점
1. 계수 정렬이란?계수 정렬은 비교 기반이 아닌 정렬 알고리즘으로, 정수 또는 정수로 표현 가능한 데이터의 빈도를 기반으로 정렬합니다. 값의 크기가 제한된 경우 매우 효율적이며, 주로 숫자 범위가 제한적이고 데이터가 중복이 많은 경우에 사용됩니다. 2. 원리정렬할 데이터의 범위를 파악하여 해당 범위의 크기만큼의 카운팅 배열을 생성합니다.데이터의 각 값을 인덱스로 하여 카운팅 배열에 빈도를 저장합니다.카운팅 배열을 누적 합으로 변환하여 정렬된 위치를 결정합니다.원본 배열을 순회하며 데이터를 정렬된 위치에 삽입합니다. 3. 동작 예시 (구체적인 설명)정렬할 배열: [4, 2, 2, 8, 3, 3, 1]카운팅 배열 생성:데이터의 최대값 8을 기준으로 크기 9의 카운팅 배열 생성(데이터 크기 범위가 [0,..
2025. 1. 2.