일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- Github
- BFS
- py
- 파이썬
- 대학원
- 대학원일기
- level1
- MSBuild
- 어렵다
- 안드로이드스튜디오
- Matrix Factorization
- Python
- 컨트리뷰톤
- 자바
- level4
- 컴퓨터비전
- level3
- git
- 휴학
- androidstudio
- D3
- LEVEL2
- SWEA
- 다시풀기
- 내휴학생활중의아주큰일
- SQL
- java
- WebOS
- build
Archives
- Today
- Total
bit가 눈 앞에서 왔다갔다
Py) 계수정렬 Counting Sort 본문
- 특정 조건일 때만 사용 가능하며 매우 빠름
- 데이터 크기 범위가 제한 되어 있을 경우와 정수 형태로 표현 할 수 있을 때 사용
- 안정정렬
- 복잡도 분석:
- 데이터 개수 N, 최대값(양수) K이다. 최악의 경우(데이터의 범위가 너무 큰 경우 ex. 0 ~ 99999)에도 O(N+K) 유지
알고리즘
- 입력받는 데이터의 범위를 포함할 수 있는 리스트를 생성한다.
- 생성한 리스트에서 각 데이터에 해당하는 인덱스의 값을 증가시킨다.
array = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2]
count = [0] * (max(array)+1) #모든 범위를 포함하는 리스트 생성
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 > Concept' 카테고리의 다른 글
DFS, BFS 판단 기준 (0) | 2022.02.04 |
---|---|
Py) 퀵정렬 Quick Sort (0) | 2021.02.17 |
Py) 삽입정렬 Insertion Sort (0) | 2021.02.17 |
Py) 선택정렬 Selection Sort (0) | 2021.02.17 |
py) BFS, DFS (0) | 2021.02.11 |
Comments