[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์‹œ๊ฐ„๋ณต์žก๋„ ๋น„๊ต
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์ •๋ ฌ์˜ ์ •์˜$n$๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ž…๋ ฅ ๋ฐ›์€ ์ˆซ์ž๋“ค์„ ์ ์  ์ปค์ง€๋Š” ์ˆœ์„œ๋‚˜ ์ ์  ์ž‘์•„์ง€๋Š” ์ˆœ์„œ๋กœ ๋‹ค์‹œ ์žฌ๋ฐฐ์—ดํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ ์„ ํƒ์ •๋ ฌํ˜„์žฌ ์ƒํ™ฉ์—์„œ ๊ฐ€์žฅ ์ž‘๊ฑฐ๋‚˜ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ์„ ํƒํ•˜์—ฌ ์žฌ๋ฐฐ์น˜ํ•˜๋Š” ์•„์ด๋””์–ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ˆ˜ํ–‰์‹œ๊ฐ„: $_{n}\mathrm{C}_{2}$ ๋˜๋Š” $n(n-1) \over 2$ ๋˜๋Š” $\sum_{i=1}^{N-1} i$์ตœ์•…: ์„ ํƒ์ •๋ ฌ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ญ์ƒ ์ผ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค์ตœ์„ : ์„ ํƒ์ •๋ ฌ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ญ์ƒ ์ผ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์„ ์˜ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค์ฆ‰, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” $O(n^2)$Not Stable ์ •๋ ฌ์ž„ ์‚ฝ์ž…์ •๋ ฌKey ๊ฐ’์„ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์— ์•Œ๋งž์€ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜์—ฌ ์ •๋ ฌ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜$T(n) = c_{1}n+c_{2}(n-1)+c_{3}(n-1)+ c_{4}\sum_{j=2}^n ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด๋ถ„ํƒ์ƒ‰(Binary Search)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์ด๋ถ„ํƒ์ƒ‰์ด๋ž€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์˜ ์ค‘์•™์— ์žˆ๋Š” ๊ฐ’์„ ์กฐ์‚ฌํ•˜์—ฌ ์ฐพ๊ณ ์žํ•˜๋Š” ํ•ญ๋ชฉ์ด ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋‚ด์–ด ํƒ์ƒ‰์˜ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๊ฐ€๋ฉฐ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆซ์ž์•ผ๊ตฌ๊ฒŒ์ž„๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰์€ ๋ฐฐ์—ด์˜ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด๋ถ„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ • 1 3 5 6 7 9 11 20 30 ์œ„ ๋ฐฐ์—ด์—์„œ 5๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ณด์ž. ์ค‘๊ฐ„๊ฐ’์ธ 7์„ mid๊ฐ’์œผ๋กœ ์ง€์ •ํ•œ ํ›„, 5์™€ ๋น„๊ต ( 5๋Š” 7๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ 7๋ณด๋‹ค ํฐ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์€ ์ œ์™ธ) ๋‹ค์‹œ ์™ผ์ชฝ๋ถ€๋ถ„์—์„œ ์ค‘๊ฐ„๊ฐ’์ธ 3์„ mid๊ฐ’์œผ๋กœ ์ง€์ •ํ•œํ›„, 5์™€ ๋น„๊ต (3์€ 5๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ 3๋ณด๋‹ค ์ž‘์€ ์™ผ์ชฝ ๋ถ€๋ถ„์€ ์ œ์™ธ) ๋‹ค์‹œ ์˜ค๋ฅธ์ชฝ๋ถ€๋ถ„์—์„œ ์ค‘๊ฐ„๊ฐ’์ธ 5๋ฅผ mid๊ฐ’์œผ๋กœ ์ง€์ •ํ•œ ํ›„, 5์™€ ๋น„๊ต (5์™€ 5๋Š” ๊ฐ™์€ ๊ฐ’์ด๋ฏ€..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ธฐ์ˆ˜์ •๋ ฌ(Radix Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
๊ธฐ์ˆ˜์ •๋ ฌ์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ(Radix)๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹ ๋ฐ์ดํ„ฐ์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ผ๋ฆฌ ๋น„๊ตํ•˜๋ฉด์„œ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฐ€์žฅ ์ž‘์€ ์ž๋ฆฟ์ˆ˜๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ LSD(Least-Significant-Digit)์™€ ๊ฐ€์žฅ ํฐ ์ž๋ฆฟ์ˆ˜๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ MSD(Most-Significant-Digit)๊ฐ€ ์žˆ๋‹ค. ๊ธฐ์ˆ˜์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ • ํ•œ์ž๋ฆฌ์ˆ˜ ์ผ๋• ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด ์ธ๋ฑ์Šค๊ฐ€ ๋˜์–ด ๋ฐฐ์—ด์— ์ •๋ ฌ๋œ๋‹ค. ๋งŒ์•ฝ 2์ž๋ฆฌ ์ผ๋•? (28,93,39,81,62,72,38,26) ๋‚ฎ์€ ์ž๋ฆฌ์ˆ˜๋กœ ๋จผ์ € ๋ถ„๋ฅ˜ํ•œ ๋‹ค์Œ, ์ˆœ์„œ๋Œ€๋กœ ์ฝ์–ด์„œ ๋‹ค์‹œ ๋†’์€ ์ž๋ฆฌ์ˆ˜๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค. ๋ฒ„์ผ“์€ ํ๋กœ ๊ตฌํ˜„ ๋ฒ„์ผ“์˜ ๊ฐœ์ˆ˜๋Š” ํ‚ค์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•๊ณผ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค.(์ด์ง„๋ฒ•2๊ฐœ, ์•ŒํŒŒ๋ฒณ26๊ฐœ, ์‹ญ์ง„๋ฒ•10๊ฐœ) ์ž๋ฆฌ์ˆ˜์— ๋”ฐ๋ผ ํ์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ๋ฒ„..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ€ต ์ •๋ ฌ(Quick Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
ํ€ต ์ •๋ ฌ์ด๋ž€ ํ‰๊ท ์ ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅธ ์ •๋ ฌ ๋ฐฉ๋ฒ• ๋ถ„ํ• ์ •๋ณต๋ฒ• ์‚ฌ์šฉ ๋ฆฌ์ŠคํŠธ๋ฅผ 2๊ฐœ์˜ ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ๋กœ ํ•ฉ๋ณ‘์ •๋ ฌ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํ€ต์ •๋ ฌ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„๊ท ๋“ฑ ๋ถ„ํ• ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํ€ต์ •๋ ฌํ•œ๋‹ค(์žฌ๊ท€) ๋ถˆ์•ˆ์ • ์ •๋ ฌ์— ์†ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์›์†Œ์™€์˜ ๋น„๊ต๋งŒ์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋น„๊ต์ •๋ ฌ์— ์†ํ•œ๋‹ค. ๋ถ„ํ• ์ •๋ณต์ด๋ž€? ๋ฌธ์ œ๋ฅผ ์ž‘์€ 2๊ฐœ์˜ ๋ฌธ์ œ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•œ ๋‹ค์Œ, ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ์›๋ž˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ „๋žต ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์€ ๋Œ€๊ฐœ ์žฌ๊ท€ํ˜ธ์ถœ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ๋ถ„ํ• (Divide): ์ž…๋ ฅ ๋ฐฐ์—ด์„ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ท ๋“ฑํ•˜๊ฒŒ 2๊ฐœ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด(ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์€ ์š”์†Œ๋“ค์€ ์™ผ์ชฝ์—, ํฐ ์š”์†Œ๋“ค์€ ์˜ค๋ฅธ์ชฝ์— ์˜ค๊ฒŒ๋”)๋กœ ๋ถ„ํ• ํ•œ๋‹ค. ์ •๋ณต(Conquer): ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค. ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ž‘์ง€ ์•Š์œผ๋ฉด ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•˜์—ฌ ๋ถ„ํ•  ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ•ฉ๋ณ‘ ์ •๋ ฌ(Merge Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
ํ•ฉ๋ณ‘์ •๋ ฌ์ด๋ž€ ๋ฆฌ์ŠคํŠธ๋ฅผ 2๊ฐœ์˜ ๊ท ๋“ฑํ•œ ํฌ๊ธฐ๋กœ ๋ถ„ํ• ํ•˜๊ณ  ๋ถ„ํ• ๋œ ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ •๋ ฌ๋œ 2๊ฐœ์˜ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•ฉํ•˜์—ฌ ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. ํ•ฉ๋ณ‘์ •๋ ฌ์€ ์•ˆ์ • ์ •๋ ฌ(Stable)์— ์†ํ•˜๋ฉฐ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜(Divide and conquer)์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ๋ถ„ํ• ์ •๋ณต์ด๋ž€? ๋ฌธ์ œ๋ฅผ ์ž‘์€ 2๊ฐœ์˜ ๋ฌธ์ œ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ๊ฐ์„ ํ•ด๊ฒฐํ•œ ๋‹ค์Œ, ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ์›๋ž˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ „๋žต ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์€ ๋Œ€๊ฐœ ์žฌ๊ท€ํ˜ธ์ถœ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ๋ถ„ํ• (Divide): ์ž…๋ ฅ ๋ฐฐ์—ด์„ ๊ฐ™์€ ํฌ๊ธฐ์˜ 2๊ฐœ์˜ ๋ฐฐ์—ด๋กœ ๋ถ„ํ•  ์ •๋ณต(Conquer): ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค. ํฌ๊ธฐ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ž‘์ง€ ์•Š์œผ๋ฉด ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์‹œ ๋ถ„ํ• ๋ฐฉ๋ฒ•์ ์šฉ ๊ฒฐํ•ฉ(Combine): ์ •๋ ฌ๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด๋“ค์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์— ํ•ฉ๋ณ‘ํ•œ๋‹ค. ํ•ฉ๋ณ‘์ •๋ ฌ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋… ์ถ”๊ฐ€..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‰˜ ์ •๋ ฌ(Shell Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์‰˜ ์ •๋ ฌ์ด๋ž€? ์‚ฝ์ž…์ •๋ ฌ์ด ์–ด๋А์ •๋„ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ ๋Œ€๋‹จํžˆ ๋น ๋ฅธ ๊ฒƒ์— ์ฐฉ์•ˆ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์‚ฝ์ž…์ •๋ ฌ์€ ์š”์†Œ๋“ค์ด ์‚ฝ์ž…๋  ๋•Œ, ์ด์›ƒํ•œ ์œ„์น˜๋กœ๋งŒ ์ด๋™๋œ๋‹ค. ์ฆ‰, ๋งŒ์•ฝ ์‚ฝ์ž…๋˜์–ด์•ผ ํ•  ์œ„์น˜๊ฐ€ ํ˜„์žฌ ์œ„์น˜์—์„œ ์ƒ๋‹นํžˆ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๊ณณ์ด๋ผ๋ฉด ๋งŽ์€ ์ด๋™์„ ํ•ด์•ผ๋งŒ ์ œ์ž๋ฆฌ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์‚ฝ์ž… ์ •๋ ฌ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์‰˜ ์ •๋ ฌ์€ ์ „์ฒด์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ์ •๋ ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์š”์†Œ๋“ค์ด ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉด ๋ณด๋‹ค ์ ๊ฒŒ ์ด๋™ํ•˜์—ฌ ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ. ์ •๋ ฌํ•ด์•ผํ•  ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ k๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ถ”์ถœํ•ด์„œ ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด๋•Œ k๋ฅผ gap์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ„๊ฒฉ์˜ ์ดˆ๊ธฐ๊ฐ’์€ (์ •๋ ฌํ•  ๊ฐ’์˜ ์ˆ˜) / 2, ์ƒ์„ฑ๋œ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ์˜ ์ˆ˜๋Š” gap๊ณผ ๊ฐ™๋‹ค. ๊ฐ ํšŒ์ „๋งˆ๋‹ค ๊ฐ„๊ฒฉ k๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ํšŒ์ „์ด ๋ฐ˜๋ณต๋  ๋•Œ๋งˆ๋‹ค ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ์˜ ์†ํ•œ ๊ฐ’..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฒ„๋ธ”์ •๋ ฌ(Bubble Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
๋ฒ„๋ธ”์ •๋ ฌ์ด๋ž€ ์ธ์ ‘ํ•œ 2๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ˆœ์„œ๋Œ€๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์„œ๋กœ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ์ •๋ ฌ๊ณผ ๊ธฐ๋ณธ๊ฐœ๋…์ด ์œ ์‚ฌํ•˜๋‹ค ๋ฒ„๋ธ”์ •๋ ฌ ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฒ„๋ธ” ์ •๋ ฌ์€ ์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ์™€ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ, ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ์™€ ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ, ์„ธ ๋ฒˆ์งธ์™€ ๋„ค ๋ฒˆ์งธ๋ฅผ, … ์ด๋Ÿฐ ์‹์œผ๋กœ (๋งˆ์ง€๋ง‰-1)๋ฒˆ์งธ ์ž๋ฃŒ์™€ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜ํ•˜๋ฉด์„œ ์ž๋ฃŒ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. 1ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ๊ฐ€์žฅ ํฐ ์ž๋ฃŒ๊ฐ€ ๋งจ ๋’ค๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ 2ํšŒ์ „์—์„œ๋Š” ๋งจ ๋์— ์žˆ๋Š” ์ž๋ฃŒ๋Š” ์ •๋ ฌ์—์„œ ์ œ์™ธ๋˜๊ณ , 2ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ๋์—์„œ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๊นŒ์ง€๋Š” ์ •๋ ฌ์—์„œ ์ œ์™ธ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ •๋ ฌ์„ 1ํšŒ์ „ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ •๋ ฌ์—์„œ ์ œ์™ธ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋Š˜์–ด๋‚œ๋‹ค. ๋ฒ„๋ธ”์ •๋ ฌ ๊ณผ์ • ์ฒซ๋ฒˆ์งธ ์ž๋ฃŒ 7์„ 4์™€ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜ํ•˜๊ณ , [๊ตํ™˜]์นธ์ด ํ•œ ์นธ ์ด๋™๋˜์–ด 7๊ณผ 5๋ฅผ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‚ฝ์ž…์ •๋ ฌ(Insertion Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์‚ฝ์ž…์ •๋ ฌ์ด๋ž€ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„์— ์ƒˆ๋กœ์šด ๋ ˆ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฐ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์†์•ˆ์˜ ์นด๋“œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ์ƒˆ๋กœ์šด ์นด๋“œ๋ฅผ ๊ธฐ์กด์˜ ์ •๋ ฌ๋œ ์นด๋“œ ์‚ฌ์ด์˜ ์˜ฌ๋ฐ”๋ฅธ ์ž๋ฆฌ๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•œ๋‹ค ์ƒˆ๋กœ ์‚ฝ์ž…๋  ์นด๋“œ์˜ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜๋ฉด ์ „์ฒด ์นด๋“œ๊ฐ€ ์ •๋ ฌ๋œ๋‹ค. ์ž๋ฃŒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•˜์—ฌ, ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ์ •๋ ฌ์„ ์™„์„ฑํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์‚ฝ์ž… ์ •๋ ฌ์€ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ทธ ์•ž(์™ผ์ชฝ)์˜ ์ž๋ฃŒ๋“ค๊ณผ ๋น„๊ตํ•˜์—ฌ ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ ํ›„ ์ž๋ฃŒ๋ฅผ ๋’ค๋กœ ์˜ฎ๊ธฐ๊ณ  ์ง€์ •ํ•œ ์ž๋ฆฌ์— ์ž๋ฃŒ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ฆ‰, ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋Š” (์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ), ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋Š” (๋‘ ๋ฒˆ์งธ์™€ ์ฒซ ๋ฒˆ์งธ) ์ž๋ฃŒ, ๋„ค ๋ฒˆ์งธ ์ž๋ฃŒ๋Š” (์„ธ ๋ฒˆ์งธ, ๋‘ ๋ฒˆ์งธ, ์ฒซ ๋ฒˆ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์„ ํƒ ์ •๋ ฌ(Selection Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์„ ํƒ์ •๋ ฌ ์ •๋ ฌ๋œ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ์™€ ์ •๋ ฌ์•ˆ๋œ ์˜ค๋ฅธ์ชฝ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆ„์–ด ์ •๋ ฌ ์ดˆ๊ธฐ์—๋Š” ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ๋Š” ๋น„์–ด์žˆ๊ณ  ์ •๋ ฌํ•  ์ˆซ์ž๋“ค์€ ๋ชจ๋‘ ์˜ค๋ฅธ์ชฝ ๋ฆฌ์ŠคํŠธ์— ์กด์žฌํ•œ๋‹ค. In-place ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜ (์ž…๋ ฅ๋ฐฐ์—ด ์ด์™ธ์˜ ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•) ์›์†Œ๋ฅผ ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ์žˆ๊ณ  ์–ด๋–ค ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ "์„ ํƒ"ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ค๋ฅธ์ชฝ๋ฆฌ์ŠคํŠธ์—์„œ ์ตœ์†Œ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ์ • ์„ ํƒ ์ •๋ ฌ์€ ์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ์ฒซ ๋ฒˆ์งธ์— ๋†“๊ณ , ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ฅผ ์„ธ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ž๋ฃŒ๊นŒ์ง€์™€ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„ ๋‘ ๋ฒˆ์งธ ์œ„์น˜์— ๋†“๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 1ํšŒ์ „์„ ์ˆ˜ํ–‰..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์œ„์ƒ ์ •๋ ฌ(Topological Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์œ„์ƒ ์ •๋ ฌ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ„์„  ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ •์  u๋Š” ์ •์  v๋ฅผ ์„ ํ–‰ํ•จ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ •์ ๋“ค์˜ ์„ ํ–‰ ์ˆœ์„œ๋ฅผ ์œ„๋ฐฐํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ชจ๋“  ์ •์ ์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์œ„์ƒ์ •๋ ฌ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ต์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜ํ”„์— ์‚ฌ์ดํด์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ์œ„์ƒ ์ •๋ ฌ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜๋‚˜์˜ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—๋Š” ์—ฌ๋Ÿฌ ์œ„์ƒ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์œ„์ƒ ์ •๋ ฌ์˜ ๊ณผ์ •์—์„œ ์„ ํƒ๋˜๋Š” ์ •์ ์˜ ์ˆœ์„œ๋ฅผ ์œ„์ƒ ์ˆœ์„œ(Topological Order)๋ผ ํ•œ๋‹ค. ์œ„์ƒ ์ •๋ ฌ์˜ ๊ณผ์ •์—์„œ ๊ทธ๋ž˜ํ”„์— ๋‚จ์•„ ์žˆ๋Š” ์ •์  ์ค‘์— ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ธ ์ •์ ์ด ์—†๋‹ค๋ฉด, ์œ„์ƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ค‘๋‹จ๋˜๊ณ  ์ด๋Ÿฌํ•œ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„๋œ ๋ฌธ์ œ๋Š” ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค. ์ง„์ž…์ฐจ์ˆ˜๊ฐ€ 0์ธ ์ •์ ์„ ํ์— ์‚ฝ์ž…ํ•œ๋‹ค. ํ์—์„œ ์›์†Œ๋ฅผ ๊บผ๋‚ด ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ฐ„์„ ์„ ์ œ๊ฑฐํ•œ๋‹ค. ๊ฐ„์„  ์ œ๊ฑฐ ์ดํ›„ ์ง„์ž…ํ•˜์ˆ˜๊ฐ€ 0์ด ๋  ์ •์ ์„..
[์ž๋ฃŒ๊ตฌ์กฐ] ํž™์ •๋ ฌ(Heap Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
ํž™์ •๋ ฌ์ด๋ž€ 2022.10.13 - [๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/ํž™] - [์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap)์ด๋ž€? [์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap)์ด๋ž€? ํž™์ด๋ž€? ์™„์ „์ด์ง„ํŠธ๋ฆฌ์˜ ์ผ์ข…์ด๋‹ค. ํž™์€ ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ’๋“ค ์ค‘ ์ตœ๋Œ€๊ฐ’ ํ˜น์€ ์ตœ์†Œ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. Max heap์€ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๊ณ  Min Heap linerate.tistory.com ํ•ฉ๋ณ‘ ์ •๋ ฌ๋ฐฉ์‹์€ ๋น„๋ก ์ตœ์•…์˜ ๊ฒฝ์šฐ ์—ฐ์‚ฐ ์‹œ๊ฐ„๊ณผ ํ‰๊ท  ์—ฐ์‚ฐ ์‹œ๊ฐ„ ๋ชจ๋‘ O(nlogn)์ด์ง€๋งŒ, ์ •๋ ฌํ•  ๋ ˆ์ฝ”๋“œ ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ์ €์žฅ ๊ณต๊ฐ„์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•˜๋‹ค. ํž™ ์ •๋ ฌ(heap sort)์€ ์ผ์ •ํ•œ ์–‘์˜ ์ €์žฅ ๊ณต๊ฐ„๋งŒ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•œ ๋™์‹œ์—, ์ตœ์•…์˜ ๊ฒฝ์šฐ ํ‰๊ท  ์—ฐ์‚ฐ ์‹œ๊ฐ„์ด O(n log n)์ด๋‹ค. ํ•˜์ง€๋งŒ, ํž™ ์ •๋ ฌ์€ ํ•ฉ๋ณ‘ ์ •๋ ฌ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋А๋ฆฌ๋‹ค..
๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
Merge Sort(๋ณ‘ํ•ฉ ์ •๋ ฌ) ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋ถ„ํ• ์ •๋ณต(Divide and Conquer)์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค. n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ณ‘ํ•ฉ์ •๋ ฌ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ 3๋‹จ๊ณ„์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค. 1. Divide(๋ถ„ํ• ) : n๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ–๋Š” ๋ฐฐ์—ด์„ n/2 ๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ–๋Š” ์ž‘์€๋ฐฐ์—ด 2๊ฐœ๋กœ ๋‚˜๋ˆˆ๋‹ค. 2. Conquer(์ •๋ณต) : ๊ฐ๊ฐ์˜ ์ž‘์€ ๋ฐฐ์—ด๋“ค์„ ์ •๋ ฌํ•œ๋‹ค. 3. Combine(๋ณ‘ํ•ฉ) : ์ •๋ ฌ๋œ ์ž‘์€ ๋ฐฐ์—ด๋“ค์„ ๋ณ‘ํ•ฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค. ๋ณ‘ํ•ฉ์ •๋ ฌ์˜ ํŠน์ง• ๋ณ‘ํ•ฉ์ •๋ ฌ์€ ๋ถ„ํ• ํ•œ ์ž‘์€ ๋ฐฐ์—ด์„ ์œ„ํ•œ ์ €์žฅ๊ณต๊ฐ„์ด ๋”ฐ๋กœ ํ•„์š”ํ•˜๋‹ค. n๊ฐœ์˜ ์›์†Œ๋ฅผ n/2 ๊ฐœ์”ฉ ๋‚˜๋ˆ„๋ฏ€๋กœ ๋ณ‘ํ•ฉ์ •๋ ฌ์˜ ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(n)์ด๋‹ค. ๋”ฐ๋ผ์„œ not-in place ์ •๋ ฌ์ด๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ..
์ •๋ ฌ(Sort Algorithm)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ด๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ธฐ์ค€์— ๋งž๊ฒŒ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. stable vs not stable STABLE ์ •๋ ฌ์€ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์ด ์žˆ์„ ๋•Œ ์ด๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, int arr[5] = { 7, 3, 6, 2, 3 }๊ณผ ๊ฐ™์ด 3๊ฐ’์ด ๋‘๋ฒˆ ๋“ค์–ด ์žˆ๋Š” ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด๊ฒƒ์„ ์–ด๋– ํ•œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ •๋ ฌ ํ–ˆ์„ ๋•Œ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์ด ์ฒ˜์Œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ ๋˜์—ˆ๋‹ค๋ฉด stable sort๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์–ด๋– ํ•œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ •๋ ฌ ํ–ˆ์„ ๋•Œ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์ด ์ฒ˜์Œ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๋‹ค๋ฉด not-stable sort๋ผ๊ณ  ํ•œ๋‹ค. ์ •๋ ฌ์ „์—๋Š” ์ฃผํ™ฉ์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•œ 3์ด ์ดˆ๋ก์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•œ 3๋ณด๋‹ค ์•ž์— ์žˆ๋‹ค. Stable sort: ์ •๋ ฌ ..
ํ€ต์ •๋ ฌ(QuickSort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
ํ€ต ์ •๋ ฌ(Quick Sort) ํ€ต ์ •๋ ฌ์€ ํ•ฉ๋ณ‘์ •๋ ฌ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋ถ„ํ• ์ •๋ณต(Divide and Conquer) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ‰๊ท ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ์ž๋ž‘ํ•˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. 1. ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํ•œ ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ ๋ฅธ ์›์†Œ๋ฅผ pivot์ด๋ผ๊ณ  ํ•œ๋‹ค. 2. pivot์„ ๊ธฐ์ค€์œผ๋กœ pivot๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๋“ค์€ ๋ชจ๋‘ pivot์˜ ์™ผ์ชฝ์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  pivot๋ณด๋‹ค ํฐ ์š”์†Œ๋“ค์€ ๋ชจ๋‘ povot์˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ธด๋‹ค. 3. pivot์„ ์ œ์™ธํ•œ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ์™€ ์˜ค๋ฅธ์ชฝ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์ •๋ ฌํ•œ๋‹ค. 3-1) ๋ถ„ํ• ๋œ ์™ผ์ชฝ ๋ฆฌ์ŠคํŠธ์™€ ์˜ค๋ฅธ์ชฝ๋ฆฌ์ŠคํŠธ๋„ ๋‹ค์‹œ pivot์„ ์ •ํ•˜๊ณ  pivot์„ ๊ธฐ์ค€์œผ๋กœ 2๊ฐœ์˜ ๋ถ€๋ถ„๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆˆ๋‹ค. 3-2) ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋“ค์ด ๋”์ด์ƒ ๋ถ„ํ• ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•  ๋•Œ๊นŒ์ง€ ..
์‚ฝ์ž…์ •๋ ฌ(InsertionSort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์‚ฝ์ž…์ •๋ ฌ ์‚ฝ์ž…์ •๋ ฌ์€ ๋‘ ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ทธ ์•ž์˜ ์›์†Œ๋“ค๊ณผ ๋น„๊ตํ•˜์—ฌ ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ ํ›„, ์›์†Œ๋ฅผ ๋’ค๋กœ ์˜ฎ๊ธฐ๊ณ  ์ง€์ •๋œ ์ž๋ฆฌ์— ์ž๋ฃŒ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ•˜์ž. ๋‘๋ฒˆ ์งธ ์›์†Œ์ธ 5๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ทธ ์•ž์˜ ์›์†Œ๋“ค๊ณผ ๋น„๊ต๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. 5์™€ 7์„ ๋น„๊ตํ•ด 5๊ฐ€ ๋” ์ž‘์œผ๋ฏ€๋กœ 7์„ ํ•œ์นธ ๋’ค๋กœ ์˜ฎ๊ธฐ๊ณ  ๊ทธ ์ž๋ฆฌ์— 5๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์„ธ ๋ฒˆ์งธ ์›์†Œ์ธ 1๊ณผ ๊ทธ ์•ž์˜ ์›์†Œ 7์„ ๋น„๊ตํ•ด 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ 7์„ ํ•œ ์นธ ๋’ค๋กœ ๋ฏผ๋‹ค. ๊ทธ ์•ž์˜ ์›์†Œ 5์™€ 1์„ ๋น„๊ตํ•ด 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ 5๋ฅผ ํ•œ ์นธ ๋’ค๋กœ ๋ฐ€๊ณ  1์„ ๊ทธ ์ž๋ฆฌ์— ์‚ฝ์ž…ํ•œ๋‹ค. ๋„ค ๋ฒˆ์งธ ์›์†Œ์ธ 4์™€ ๊ทธ ์•ž์˜ ์›์†Œ 7์„ ๋น„๊ตํ•ด 4๊ฐ€ ๋” ์ž‘์œผ๋ฏ€๋กœ 7์„ ํ•œ ์นธ ๋’ค๋กœ ๋ฏผ๋‹ค. ๊ทธ ์•ž์˜ ์›์†Œ 5์™€ 4๋ฅผ๋น„๊ตํ•ด 4๊ฐ€ ๋” ์ž‘์œผ๋ฏ€๋กœ 5๋ฅผ ..
์„ ํƒ์ •๋ ฌ(Selection Sort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
์„ ํƒ์ •๋ ฌ(Selection Sort) ์„ ํƒ์ •๋ ฌ์€ ํ˜„์žฌ ์œ„์น˜์— ๋“ค์–ด๊ฐˆ ๊ฐ’์„ ์ฐพ์•„์„œ ๋ฐ”๊พธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์„ ํƒ์ •๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฐ€์ง„๋‹ค. 1. ํ˜„์žฌ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฐ€์žฅ ๋งจ ์•ž์˜ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค. 2. ํ˜„์žฌ ์ธ๋ฑ์Šค์˜ ๋‹ค์Œ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์œผ๋ฉด ํ˜„์žฌ ์ธ๋ฑ์Šค์˜ ๊ฐ’๊ณผ ๋ฐ”๊ฟ”์ค€๋‹ค. 3. ๋‹ค์Œ ์ธ๋ฑ์Šค์—์„œ ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์„ ํƒ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ€์žฅ ๋จผ์ € ๋งจ ์•ž์˜ 7๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. 7๋’ค์˜ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ธ 1๊ณผ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ๋‹ค. i๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค, minIdx๋Š” ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹ค์Œ์€ 5์™€ ๊ทธ ์ดํ›„ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ธ 3์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค. ๋‹ค์Œ์œผ๋กœ 7๊ณผ ๊ทธ ์ดํ›„ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ธ 4์˜ ์œ„์น˜..
๋ฒ„๋ธ”์ •๋ ฌ(BubbleSort)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ •๋ ฌ ๋ฐ ํƒ์ƒ‰
๋ฒ„๋ธ” ์ •๋ ฌ ๋ฒ„๋ธ”์ •๋ ฌ์€ ํ˜„์žฌ ์›์†Œ์™€ ๋‹ค์Œ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž์œผ๋ฉด ๊ตํ™˜ํ•˜๋Š” ์‹์˜ ์ •๋ ฌ์ด๋‹ค. ์›์†Œ๊ฐ€ ๊ฑฐํ’ˆ์ฒ˜๋Ÿผ ์˜ฌ๋ผ์˜ค๋Š” ๋“ฏํ•˜์—ฌ ๋ฒ„๋ธ”์ •๋ ฌ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ฒ˜์Œ 7๊ณผ 5๋ฅผ ๋น„๊ตํ•˜์—ฌ 7์ด ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. ์ดํ›„ ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ๋น„๊ตํ•ด์„œ ๊ฐ’์ด ๋” ํฌ๋‹ค๋ฉด ์œ„์น˜๋ฅผ ๋ฐ”๊พผ๋‹ค. ๋‹ค์‹œ 5์™€ 1์„ ๋น„๊ตํ•ด 5๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ด๋ฒˆ์—” ์ •๋ ฌ์ด ๋๋‚œ 7 ์ „๊นŒ์ง€๋งŒ ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณต ํ•ด์ค€๋‹ค. ๋‹ค์‹œ 1๊ณผ 4๋ฅผ ๋น„๊ตํ•˜์—ฌ 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ์ง€์•Š๋Š”๋‹ค. ์ดํ›„ 4์™€ 3์„ ๋น„๊ตํ–ˆ์„ ๋•Œ 4๊ฐ€ ๋” ํฌ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค. 1๊ณผ 3์„ ๋น„๊ตํ•˜์—ฌ 1์ด ๋” ์ž‘์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋ฒ„๋ธ”์ •๋ ฌ์ด ์™„๋ฃŒ๋œ๋‹ค. ๋ฒ„๋ธ”์ •๋ ฌ์˜ ํŠน์ง• ๋ฒ„๋ธ”์ •๋ ฌ์€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(1)์ด๋‹ค. ์„ ํƒ์ •๋ ฌ..