๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- ์๋ฃ๊ตฌ์กฐ
- ๋ฐฑ์ค
- SW์ญ๋ํ ์คํธ
- kakao
- ์ฝ๋ฉํ ์คํธ
- ์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์์ ํ์
- ํํ
- ์ธํผ
- Backjoon
- algorithm
- ๊ทธ๋ํ
- javascript
- ํ์ด์ฌ
- DP
- boj
- SWEA
- ์ผ์ฑ
- Blind
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- sort
- DFS
- Python
- ์คํ
- BFS
- SSAFY
Archives
- Today
- Total
๋ง์ํ
๊ณ์ ์ ๋ ฌ(counting sort) ๋ณธ๋ฌธ
๋ฐ์ํ

๐ ๊ณ์ ์ ๋ ฌ(counting sort) ์ด๋
- ์์ ๋ฒ์ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ์ ํํด์ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ
- ์๊ฐ๋ณต์ก๋: O(N), ์ต์ ์ ๊ฒฝ์ฐ O(N^2)
- ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐฏ์๋ง ์ธ์ฃผ๋ฉด ๋๋ค. ๋น๊ต์ ๋ ฌ X
๐ ๊ณ์ ์ ๋ ฌ(counting sort) ๊ตฌํ
N = 5 # 5 ์ดํ์ธ ์๋ค์ ์ ๋ ฌํด๋ผ
numbers = [1, 2, 3, 4, 5, 1, 1, 2, 3, 4, 5, 3,
3, 2, 1, 2, 3, 1, 2, 3, 4, 1, 5, 1,
2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3,
4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(f'์ ๋ ฌ ์ : {numbers}')
count_list = [0] * (N + 1)
for number in numbers:
count_list[number] += 1
sorted_numbers = []
for i in range(len(count_list)):
for j in range(count_list[i]):
sorted_numbers.append(i)
print(f'์ ๋ ฌ ํ: {sorted_numbers}')
๐ ๊ณ์ ์ ๋ ฌ(counting sort) ํน์ง
- ์ฅ์
- ํน์ ์กฐ๊ฑด์์ ๋งค์ฐ ๋น ๋ฆ O(N)
- ์์ ์ ๋ ฌ
- ๋จ์
- ๋ฒ์๊ฐ ์ปค์ง์๋ก ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ค.
- ์๋์ ์๊ฐ๋ณต์ก๋๋ O(N+K) ์ฌ๊ธฐ์ K๋ ๋ฒ์์ค ๊ฐ์ฅ ํฐ ์
K๊ฐ N๋ณด๋ค ์ปค์ง๊ฒ ๋๋ฉด ์๊ฐ๋ณต์ก๋ ์ฆ๊ฐ
๋ง์ฝ 10๊ฐ(N)์ ์ซ์๋ฅผ ๋น๊ตํ๋๋ฐ ๊ฐ์ฅ ํฐ์๊ฐ 100(K)์ด๋ฉด
100๊ฐ๋ฅผ ๋ชจ๋ ์ํํด์ผํ๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋๋ O(N^2)
๋ฐ์ํ
'CS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊น์ด ์ฐ์ ํ์(Depth First Search, DFS) (0) | 2020.09.28 |
|---|---|
| ๋๋น ์ฐ์ ํ์(Breath First Search, BFS) (0) | 2020.09.27 |
| ๋ณํฉ ์ ๋ ฌ(merge sort) (0) | 2020.09.25 |
| ํต ์ ๋ ฌ(quick sort) (1) | 2020.09.24 |
| ์ฝ์ ์ ๋ ฌ(insertion sort) (0) | 2020.09.23 |