NEW
-
์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๊ณ์ ์ ๋ ฌ Counting Sort (7) (C, Python)
๊ณ์ ์ ๋ ฌ ์ด๋ฒ์๋ ๊ณ์ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ๊ณ์ ์ ๋ ฌ์ด๋ ๋จ์ํ๊ฒ 'ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๋ ์๊ณ ๋ฆฌ์ฆ'์ด๋ค. ํ์ง๋ง ๊ณ์ ์ ๋ ฌ์ '๋ฒ์์กฐ๊ฑด'์ด ์๋ ๊ฒฝ์ฐ์ ํํด์ ๊ต์ฅํ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ง๊ธ๊น์ง ์ ํ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์
์ ๋ ฌ, ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ์ ๋ฐฐ์ ๋๋ฐ ์ง๊ธ ๊น์ง ๋ฐฐ์ด ์ ๋ ฌ ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์ ๋ ฌ๋ฐฉ๋ฒ์ ๊ณ ๋ฅด๋ผ๋ฉด ์๊ฐ ๋ณต์ก๋ O(N*log N)์ ๊ฐ์ง๋ ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ ์ค ํ๋๋ฅผ ๊ณ ๋ฅผ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ ๋ ฌํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ๋ ๊น? ๊ณ์ ์ ๋ ฌ์ ๋ฒ์๊ฐ ์ฃผ์ด์ ธ์๋ค๋ฉด ์๊ฐ๋ณต์ก๋ O(N)์ ์๋๋ก ์ ๋ ฌ์ ์ํํ๋ค. ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐฏ์๋ฅผ ์ธ๊ณ , ๊ฐฏ์๋งํผ ์ถ๋ ฅํด์ฃผ๋ฉด ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋น ๋ฅด๋ค. ๋ค์์ 5 ์ดํ ์์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ธ..
-
์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ํ ์ ๋ ฌ Heap Sort(6) (C,Python)
ํ์ ๋ ฌ ์ด๋ฒ์๋ ํ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ํ์ ๋ ฌ์ด๋ ํํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ ์ ๋ ฌ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ๋จผ์ ํ(Heap)๊ตฌ์กฐ๋ฅผ ์์์ผํ๊ณ , ํ์ ์๊ธฐ ์ด์ ์๋ ์ด์ง ํธ๋ฆฌ(Binary Tree)์ ๋ํด ์์์ผ ํ๋ค. ์ด์ง ํธ๋ฆฌ(binary tree)๋ ๊ฐ๊ฐ์ ๋
ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ก, ์์ ๋
ธ๋๋ฅผ ๊ฐ๊ฐ ์ผ์ชฝ์์ ๋
ธํธ์ ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋ ๋ผ๊ณ ํ๋ค. (์ถ์ฒ : https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%ED%8A%B8%EB%A6%AC) ์์ ์ด์งํธ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ๋ฃจํธ(Root) ๋
ธ๋๋ถํฐ ์์ํด์ ์์๋
ธ๋๊ฐ ์ผ์ชฝ ์์๋
ธ๋, ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค์ด๊ฐ๋ ๊ตฌ์กฐ์ ์ด์ง ํธ๋ฆฌ์ด๋ค. ์ฆ ์์ ์ด์งํธ๋ฆฌ๋ ์ด์งํธ๋ฆฌ์ ๋
ธ๋๊ฐ ์ค..
-
์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๋ณํฉ ์ ๋ ฌ Merge Sort(5) (C,Python)
๋ณํฉ์ ๋ ฌ ์ด๋ฒ์๋ ๋ณํฉ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ๋ณํฉ์ ๋ ฌ๋ ํต์ ๋ ฌ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ํ์ ์ธ '๋ถํ ์ ๋ณต' ๋ฐฉ๋ฒ์ ์ฑํํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฐ๋ผ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ํต ์ ๋ ฌ๊ณผ ๋์ผํ๊ฒ O(N * logN)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ๋ค๋ง ํต ์ ๋ ฌ์ ์ต์
์ ๊ฒฝ์ฐ O(N^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง, ๋ณํฉ์ ๋ ฌ์ ์ ํํ ๋ฐ์ ์ฉ ๋๋๋ค๋ ์ ์์ ์ต์
์ ๊ฒฝ์ฐ์๋ O(N*logN)์ ๋ณด์ฅํ๋ค. ๋ค์์ ์ซ์๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. 7 6 5 8 3 5 9 1 ๋ณํฉ์ ๋ ฌ์ ํ๋์ ํฐ ๋ฌธ์ ๋ฅผ ๋๊ฐ์ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ ๋ค์ ๊ฐ์ ๊ณ์ฐํ๊ณ ๋์ค์ ํฉ์น๋ ๋ฐฉ๋ฒ์ ์ฑํํ๋ค. ์ฆ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์ผ๋จ ์ ํํ ๋ฐ์ผ๋ก ๋๋๊ณ ๋์ค์ ์ ๋ ฌํ๋ ๊ฒ์ด๋ค. ํต ์ ๋ ฌ๊ณผ ๋ค๋ฅด๊ฒ ํผ๋ฒ ๊ฐ์ด ์๊ณ ํญ์ ๋ฐ์ผ๋ก ๋๋๋ค๋ ํน์ง์ด ์๊ณ , ๋๋ฌธ์ ๋จ..