mergeSort

Merge Sort

๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)

: ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ ์›์†Œ๊ฐ€ ํ•˜๋‚˜ ๋ฐ–์— ๋‚จ์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋‘˜๋กœ ์ชผ๊ฐ  ํ›„์— ๋‹ค์‹œ ํฌ๊ธฐ ์ˆœ์œผ๋กœ ์žฌ๋ฐฐ์—ด ํ•˜๋ฉด์„œ ์›๋ž˜ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์นœ๋‹ค

  • ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋ถ„ํ•  ์ •๋ณต ๊ธฐ๋ฒ•๊ณผ ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(NlogN)์ด๋‹ค

  • ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(N)

  • ๋‹ค๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋‹ฌ๋ฆฌ ์ธ์ ‘ํ•œ ๊ฐ’๋“ค ๊ฐ„์— ์ƒํ˜ธ ์ž๋ฆฌ ๊ต๋Œ€(swap)์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค

์ •๋ ฌ ๋ฐฉ๋ฒ•

๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 1 ์ดํ•˜์ด๋ฉด ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” 1. ๋ถ„ํ• (divide) : ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ž˜๋ผ ๋น„์Šทํ•œ ํฌ๊ธฐ์˜ ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆˆ๋‹ค. 2. ์ •๋ณต(conquer) : ๊ฐ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ•ฉ๋ณ‘ ์ •๋ ฌ์„ ์ด์šฉํ•ด ์ •๋ ฌํ•œ๋‹ค. 3. ๊ฒฐํ•ฉ(combine) : ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœ ํ•ฉ๋ณ‘ํ•œ๋‹ค. ์ด๋•Œ ์ •๋ ฌ ๊ฒฐ๊ณผ๊ฐ€ ์ž„์‹œ๋ฐฐ์—ด์— ์ €์žฅ๋œ๋‹ค. 4. ๋ณต์‚ฌ(copy) : ์ž„์‹œ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฒฐ๊ณผ๋ฅผ ์›๋ž˜ ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•œ๋‹ค.

MergeSort

Reference : Wikipedia

Last updated

Was this helpful?