mergeSort
Last updated
Was this helpful?
Last updated
Was this helpful?
: ์ฃผ์ด์ง ๋ฐฐ์ด์ ์์๊ฐ ํ๋ ๋ฐ์ ๋จ์ง ์์ ๋๊น์ง ๊ณ์ ๋๋ก ์ชผ๊ฐ ํ์ ๋ค์ ํฌ๊ธฐ ์์ผ๋ก ์ฌ๋ฐฐ์ด ํ๋ฉด์ ์๋ ํฌ๊ธฐ์ ๋ฐฐ์ด๋ก ํฉ์น๋ค
๋ณํฉ ์ ๋ ฌ์ ๋ถํ ์ ๋ณต ๊ธฐ๋ฒ๊ณผ ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
์๊ฐ ๋ณต์ก๋๋ O(NlogN)์ด๋ค
๊ณต๊ฐ ๋ณต์ก๋๋ O(N)
๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฌ๋ฆฌ ์ธ์ ํ ๊ฐ๋ค ๊ฐ์ ์ํธ ์๋ฆฌ ๊ต๋(swap)์ด ์ผ์ด๋์ง ์๋๋ค
๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ 1 ์ดํ์ด๋ฉด ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฒ์ผ๋ก ๋ณธ๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ 1. ๋ถํ (divide) : ์ ๋ ฌ๋์ง ์์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ฐ์ผ๋ก ์๋ผ ๋น์ทํ ํฌ๊ธฐ์ ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ก ๋๋๋ค. 2. ์ ๋ณต(conquer) : ๊ฐ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํฉ๋ณ ์ ๋ ฌ์ ์ด์ฉํด ์ ๋ ฌํ๋ค. 3. ๊ฒฐํฉ(combine) : ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ๋ค์ ํ๋์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ก ํฉ๋ณํ๋ค. ์ด๋ ์ ๋ ฌ ๊ฒฐ๊ณผ๊ฐ ์์๋ฐฐ์ด์ ์ ์ฅ๋๋ค. 4. ๋ณต์ฌ(copy) : ์์ ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ์๋ ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค.