๐Ÿ’ป ๊ฐœ๋ฐœ & CS

ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort)์ด๋ž€? ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜(=Divide and conquer algorithm ์ฆ‰, ๊ทธ๋Œ€๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.)์˜ ํ•˜๋‚˜๋กœ O(nย logย n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ฉ๋ณ‘ ์ •๋ ฌ์˜ ์ž‘๋™ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 1 ์ดํ•˜์ด๋ฉด ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋ถ„ํ• (divide)ย : ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ž˜๋ผ ๋น„์Šทํ•œ ํฌ๊ธฐ์˜ ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆˆ๋‹ค. ์ •๋ณต(conquer)ย : ๊ฐ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผย ์žฌ๊ท€์ ์œผ๋กœ ํ•ฉ๋ณ‘ ์ •๋ ฌ์„ ์ด์šฉํ•ด ์ •๋ ฌํ•œ๋‹ค. ๊ฒฐํ•ฉ(combine)ย : ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœย ํ•ฉ๋ณ‘ํ•œ๋‹ค. ์ด๋•Œ ์ •๋ ฌ ๊ฒฐ๊ณผ๊ฐ€ ์ž„์‹œ๋ฐฐ์—ด์— ์ €์žฅ๋œ๋‹ค. ๋ณต์‚ฌ(copy) : ์ž„์‹œ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฒฐ๊ณผ๋ฅผ ์›๋ž˜ ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•œ๋‹ค. ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๊ฐ„๋‹ค๋ฉด ์•„๋ž˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ†ตํ•ด ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ...

2020๋…„ 3์›” 18์ผ ยท 3 ๋ถ„ ยท Sobamemil