1. ์ ํ์ ๋ ฌ:
๋งค๋ฒ ๊ฐ์ฅ ์์๊ฒ์ ์ ํํด์ ์ ๋ ฌ ์๋ ๋ถ๋ถ์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์น์ ์๋ฆฌ์ํจ๋ค.
tip) ํ์ด์ฌ์ ์ค์์ดํ๋ ๋งค์ฐ ๊ฐ๋จํ๋ค๋ ๊ฒ์ ์ด์ฉํ์
-์๊ฐ ๋ณต์ก๋: O(n^2)
2. ์ฝ์ ์ ๋ ฌ:
์ด๋ฏธ ์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ ํ๋๋ฅผ ์ฝ์ ํ ๋ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ฉด ๋๋ ๊ฒ์ ์ฐฉ์ํ๋ค๋ ์์ผ๋ก ๊ตฌํํ๋ฉด ๋๋ค.
ํ์ฌ ๊ฐ๋ฅดํค๊ณ ์๋ ์ธ๋ฐ์ค ์๋ถ๋ถ์ ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ค๊ณ ๋ณธ๋ค(์ค์ ๋ก ์ ๋ ฌ ๋์ด ์์๊ฒ์ด๋ค.). ์ธ๋ฑ์ค๋ฅผ ์ ์ฐจ ์ฆ๊ฐ ์ํค๋ฉด์
์์ ๋ฐฐ์ด์ ์ฝ์ ํ๋ ์์ผ๋ก ๊ฑฐ์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ํจ๊ณผ์ ์ด๋ค.
- ์๊ฐ ๋ณต์ก๋ : O(n^2), ๊ฑฐ์ ์ ๋ ฌ๋์ด ์์ ๊ฒฝ์ฐ -> O(n)
3. ํต์ ๋ ฌ:
์ฌ๊ท์์ผ๋ก ์๋ํ๋ค. 3๊ฐ์ง ํฌ์ธํธ๋ง ๊ธฐ์ตํ์
1. ํผ๋ฒ ์ ํ๊ธฐ
2. ์ผ์ชฝ ๋ถ๋ถ ์ค๋ฅธ์ชฝ ๋ถ๋ถ ๊ฐ ๋ ์ง์ ์์ ์ถ๋ฐํ์ฌ ์ผ์ชฝ ๋ถ๋ถ์์ ์์ํ์ผ๋ฉด ํผ๋ฒ๋ณด๋ค ํฐ๊ฐ์ ์ฐพ๊ณ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์์ ์์ํ์ผ๋ฉด ํผ๋ฒ๋ณด๋ค ์์๊ฐ ์ฐพ๊ธฐ
3. 2๋ฒ์์ ์ฐพ์ ๊ฐ์ ์๋ก ์ค์์ดํ ํ๋ฉด์ ์งํ ํ๋ค๊ฐ ์๋ก ์๊ฐ๋ฆฌ๋ฉด '๋ถํ ์๋ฃ'
์ฌ๊ท์์ผ๋ก ํผ๋ฒ ์ผ์ชฝ ๋ถ๋ถ์ ํต์ํธ ํ๊ณ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ํต์ํธ ํ๋ค. ํ์ถ ์กฐ๊ฑด์ ๋ฆฌ์คํธ ๊ธธ์ด๊ฐ 1 ์ดํ๋ฉด ํ์ถ
์ด๋ ํ์ด์ฌ์ผ๋ก ์์ฒญ ๊ฐ๋จํ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ๋ค.
์ฑ ์ ์๋ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ณด์ด๋ฉด
array = [5,7,0,9,3,1,6,2,4,8]
def quick_sort(array):
if (len(array) <= 1):
return
pivot = array[0]
tail = array[1:]
left_side = [x for x in tail if x <= pivot]
right_side = [x for x in tail if x > pivot]
return quick_sort(left_side) + [pivot] + quick_sort(right_side)
print(quick_sort(array))
-์๊ฐ ๋ณต์ก๋: O(nlogn)
4. ๊ณ์ ์ ๋ ฌ:
ํน์ ํ ์กฐ๊ฑด์ผ ๋๋ง ์ฌ์ฉํ ์ ์์ง๋ง ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ํ๋ค.
๋ง์ผ array์ ์ซ์์ค ๊ฐ์ฅ ํฐ ์ซ์๊ฐ n ์ด๋ผ๋ฉด ์ธ๋ฑ์ค n์ ์ฐธ์กฐํ ์ ์์๋งํ ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ง๋ค์ด ์ค๋ค(ํฌ๊ธฐ: n+1).
๊ทธ ๋ค์์ ๋ช๋ฒ ์ซ์๊ฐ ๋์๋์ง ์นด์ดํธ ํด์ ์ ์ด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ค์ ์นด์ดํฐ๋ฅผ ์ ์ฅํ ๋ฐฐ์ด์ ๋ณด๊ณ ์์๋๋ก ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ๊ฒ ์ ๋ ฌ๋์ด ์๋ ๊ฒ์ด๋ค.
๋งค์ฐ ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ๋์ํ์ง๋ง ๋ง์ผ ์ ๋ ฌํ๊ณ ์ถ์ ์ซ์๊ฐ 0๊ณผ 999999 ๋จ ๋๊ฐ๋ฅผ ์ ๋ ฌ ํ๊ณ ์ ํ๋ค ํด๋ ์นด์ดํธ๋ฅผ ์ํด์ ๋ง๋ค์ด์ผํ ๋ฐฐ์ด์ ๊ธธ์ด๋ 1000000์ผ ๊ฒ์ด๋ค. ์ฆ ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ๋งค์ฐ ๋๋ค. ํ์ง๋ง ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๊ฐ ๋ฑ์ฅ ํ ๋์๋ ํจ๊ณผ์ ์ด๋ค.
5. ํ์ด์ฌ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ:
1. ex) result = sorted(array)
-๋ณ๋์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋ค
-์งํฉ ์๋ฃํ์ด๋ ๋์ ๋๋ฆฌ ์๋ฃํ์ ์ ๋ ฅ ๋ฐ์๋ ๊ฒฐ๊ณผ๋ ๋ฆฌ์คํธ ์๋ฃํ์ผ๋ก ๋ฐํ๋๋ค.
2. ex) array.sort()
-๋ณ๋์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๊ฐ ๋ฐํ๋์ง ์๊ณ ๋ด๋ถ ์์๊ฐ ๋ฐ๋ก ์ ๋ ฌ๋๋ค.
3. sort() ๋ sorted()์์ key ๋งค๊ฐ๋ณ์๋ก ๋ฌด์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ๊ฒ์ธ์ง๋ฅผ ์ ํ ์ ์๋ค.
- ๋ฐ๋ก ํจ์๋ฅผ ์ค์ ํ ์ ์๊ณ , ๋๋ ๋๋ค์์ ์ด์ฉํ๋ค. ๊ฐ์ธ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์์ ๋๋ค์์ด ๋๊ฒ ํธํ๋ค.
6. ์ฝ๋ฉํ ์คํธ์ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์ ์ ํ
1) ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ ์ ์๋ ๋ฌธ์
2) ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฆฌ์ ๋ํด์ ๋ฌผ์ด๋ณด๋ ๋ฌธ์
3) ๋ ๋น ๋ฅธ ์ ๋ ฌ์ด ํ์ํ ๋ฌธ์ : ํต ์ ๋ ฌ ๊ธฐ๋ฐ์ ์ ๋ ฌ ๊ธฐ๋ฒ์ผ๋ก๋ ํ ์ ์์ผ๋ฉฐ ๊ณ์ ์ ๋ ฌ ๋ฑ์ ๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๊ฑฐ๋ ๋ฌธ์ ์์
๊ธฐ์กด์ ์๋ ค์ง ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ์ ์ธ ๊ฐ์ ์ ๊ฑฐ์ณ์ผ ํ ์ ์๋ ๋ฌธ์
'์๊ณ ๋ฆฌ์ฆ > ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Chapter 7. ์ด์งํ์ (0) | 2020.09.19 |
---|---|
chapter5. DFS/BFS (0) | 2020.08.21 |
chapter4. ๊ตฌํ (0) | 2020.08.20 |
chapter 3. ๊ทธ๋ฆฌ๋ (0) | 2020.08.19 |
์ฑ ๊ตฌ๋งค '์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉ ํ ์คํธ๋ค with ํ์ด์ฌ' -๋๋๋น ์ง์- (0) | 2020.08.18 |