- 별도의 모든 범위를 담을 수 있는 리스트 선언 후, 한번에 반환받는 방식(비교 기반이 아님)
- 특정 조건 부합시에만 사용 가능(데이터가 정수 형태 / 데이터의 범위 ≤ 1,000,000)
시간 복잡도 : O(N + K)
공간 복잡도: O(N + K) 범위의 끝과 끝 두값이 있는 경우, 비효율적
N: 데이터의 개수, K: 데이터의 최대값
array = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2]
count = [0] * (max(array) + 1) #0 ~ 9 면 10개임
for i in range(len(array)):
count[array[i]] += 1
for i in range(len(count)):
for j in range(count[i]):
print(i, end= ' ')
'학 > Algorithm' 카테고리의 다른 글
[정렬] 퀵 정렬(Quick Sort) (0) | 2023.03.05 |
---|---|
[정렬] 삽입 정렬(Insertion Sort) (0) | 2023.03.04 |
[정렬] 선택 정렬(Selection Sort) (0) | 2023.03.04 |
정렬 (0) | 2023.03.04 |
[구현] 행렬(Matrix) (0) | 2023.02.15 |