- [알고리즘] 2. 카운팅 정렬2025년 08월 15일
- Song hyun
- 작성자
- 2025.08.15.:47
728x90반응형1. 카운팅 정렬 Counting Sort
- 항목들의 순서를 결정하기 위해 집합에 각 항목이 몇 개씩 있는지 세는 작업을 해, 선형 시간에 정렬하는 효율적인 방식
- 정수/정수로 표현 가능한 자료에 대해서만 적용 가능 → 각 항목의 발생 회수를 기록하기 위해, 정수 항목으로 인덱스 되는 카운트들의 배열을 사용하기 때문!
- 카운트들을 위한 충분한 공간을 할당하려면 집합 내의 가장 큰 정수를 알아야 함
- 시간 복잡도 : O(n+k)
def counting_sort(Data, Temp, k): counts = [0] * (k+1) for i in range(len(Data)): counts[Data[i]] += 1 for i in range(1,k+1): count[i] += counts[i-1] for i in range(len(Data)-1, -1, -1): counts[Data[i]] -= 1 Temp[counts[Data[i]]] = Data[i]
728x90반응형'알고리즘' 카테고리의 다른 글
[알고리즘] 4. 탐욕 알고리즘 (0) 2025.08.21 [알고리즘] 3. 완전 검색과 순열 (1) 2025.08.18 [알고리즘] 1. 배열과 정렬 (3) 2025.08.12 [알고리즘] 알고리즘과 APS (3) 2025.08.09 [알고리즘] 점근성능 (0) 2025.03.17 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)