DevLog ๐Ÿ“จ/Algorithm 2

[DevLog] [Alogorithm] ์ •๋ ฌ Sorting Problem

๐Ÿ‘† Sound of Sorting ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ถ„๋ฅ˜ Stable Sorting : ์ค‘๋ณต๋œ ์›์†Œ์˜ ์ˆœ์„œ๊ฐ€ ์ •๋ ฌ๋œ ํ›„์—๋„ ์œ ์ง€๋จ์ด ๋ณด์žฅ๋œ๋‹ค. Unstable Sorting : ์ค‘๋ณต๋œ ์›์†Œ์˜ ์ˆœ์„œ๊ฐ€ ์ •๋ ฌ๋œ ํ›„์— ์œ ์ง€๋จ์ด ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. K1, .., K2, .. ์ˆœ์„œ์ธ ๋ฐฐ์—ด์—์„œ ์ •๋ ฌ ํ›„ K1, K2 ์ž„์ด ๋ณด์žฅ๋˜๋ฉด stable, K2, K1์ผ ์ˆ˜ ์žˆ์œผ๋ฉด unstable in-place: ๋‚ด๋ถ€ ์ •๋ ฌ, ์ •๋ ฌ์„ ์œ„ํ•ด ์™ธ๋ถ€ ๋ฐฐ์—ด์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. not in-place: ์™ธ๋ถ€ ์ •๋ ฌ, ์ •๋ ฌ์„ ์œ„ํ•ด ์™ธ๋ถ€ ๋ฐฐ์—ด์ด ํ•„์š”ํ•˜๋‹ค. ๐Ÿ”ฅ ํ•ต์‹ฌ์€ **๊ตํ™˜/์„ ํƒ/์‚ฝ์ž…** ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์„ ์‘์šฉํ•œ๋‹ค. 1. O(N^2) ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๊ตํ™˜ ์ •๋ ฌ Exchange Sort for i in range(0, ..

์œ„์ƒ ์ •๋ ฌ Topological Sorting

์œ„์ƒ ์ •๋ ฌ ์œ„์ƒ ์ •๋ ฌ์ด๋ž€? ์œ„์ƒ ์ •๋ ฌ Topological Sorting ์ด๋ž€ ๋ฐฉํ–ฅ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ •์ ๋“ค์„ ๋ณ€์˜ ๋ฐฉํ–ฅ์„ ๊ฑฐ์Šค๋ฅด์ง€ ์•Š๋„๋ก ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰ ํ•œ ์ •์ ์— ๋„๋‹ฌํ•˜๊ธฐ ์ „ ๋จผ์ € ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ •์ ๋“ค์˜ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋งŒ์•ฝ ํŠน์ • ์ˆ˜๊ฐ•๊ณผ๋ชฉ์— ์„ ์ˆ˜๊ณผ๋ชฉ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ์„ ์ˆ˜๊ณผ๋ชฉ๋ถ€ํ„ฐ ์ˆ˜๊ฐ•ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ํŠน์ • ๊ณผ๋ชฉ๋“ค์„ ์ˆ˜๊ฐ•ํ•ด์•ผ ํ•  ๋Œ€ ์œ„์ƒ ์ •๋ ฌ์„ ํ†ตํ•ด ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜๊ฐ• ์ˆœ์„œ๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์ด ์„ ํ›„ ๊ด€๊ณ„๊ฐ€ ์ •์˜๋œ ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ ์ƒ์—์„œ ์„ ํ›„ ๊ด€๊ณ„์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ์œ„์ƒ ์ •๋ ฌ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ์˜ ์ˆœ์„œ๋Š” ๋ฐฉํ–ฅ์ด ์žˆ๋Š” (์œ ํ–ฅ์˜) ๊ทธ๋ž˜ํ”„์˜ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ข…๋ฅ˜๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์œ„์ƒ ์ •๋ ฌ์ด ์„ฑ๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๊ทธ๋ž˜ํ”„์˜ ์ˆœํ™˜์ด ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ทธ๋ž˜ํ”„๊ฐ€..