계수 정렬은 특정한 조건이 부합할 때만 사용할 수 있지만 매우 빠르게 동작하는 정렬 알고리즘
데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때 사용 가능.
최악의 경우에도 수행 시간O(N + K)를 보장
def count_sort(arr):
counting = [0] * (max(arr)+1)
sorted_arr = []
for i in arr:
counting[i] +=1
for i in range(len(counting)):
sorted_arr += [i]*counting[i]
for i in range(len(arr)):
arr[i] = sorted_arr[i]
수행 시간 비교
파이썬 내장 정렬은 정말 빠르다.
다음 포스팅에 python 구현되어있는 내장 sort인 tim sort에 대해서 포스팅 하겠다.
'Computer Science > Algorithm' 카테고리의 다른 글
정렬 알고리즘 코드(python) (0) | 2022.01.08 |
---|---|
#08 파이썬 내장 정렬(Tim Sort) (0) | 2022.01.08 |
#07 기수 정렬(Radix Sort) (0) | 2022.01.07 |
#06 힙 정렬(Heap Sort) (0) | 2022.01.07 |
#05 병합 정렬(Merge Sort) (0) | 2022.01.06 |
댓글