[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ (ํ† ๋„ˆ๋จผํŠธ ํŠธ๋ฆฌ, selection ์•Œ๊ณ ๋ฆฌ์ฆ˜)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 7. 10:41

์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ ์„ ํƒ ๋ฌธ์ œ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€, ์ตœ์†Œ ๊ฐ’์„ ์ฐพ๊ฑฐ๋‚˜ n๋ฒˆ์งธ ํฐ ๊ฐ’, n๋ฒˆ์งธ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š” ๊ณผ์ •๋„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋งŽ์ด ๋“ฑ์žฅํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ n๊ฐœ์˜ ์ˆซ์ž๋“ค ์ค‘ k๋ฒˆ์งธ๋กœ ์ž‘์€(๋˜๋Š” ํฐ) ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ฅผ 'Selection problem' ์ฆ‰, ์„ ํƒ ๋ฌธ์ œ ๋ผ๊ณ  ํ•œ๋‹ค. ์ตœ๋Œ€ ์ตœ์†Œ ์ฐพ๊ธฐ ์„ ํƒ ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฌธ์ œ๊ฐ€ ์ตœ๋Œ€ / ์ตœ์†Œ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊นŒ? ์ •๋ ฌ ๋จผ์ €, ์ด์ „์— ๋ฐฐ์› ๋˜ ์ •๋ ฌ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ ํ›„ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ์ตœ๋Œ€๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ค‘๊ฐ„ ์š”์†Œ๋“ค์˜ ์ •๋ ฌ์€ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๋Š”๋ฐ์— ๋ถˆํ•„์š”ํ•œ ๊ณผ์ •์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ ฌ์„ ์ด์šฉํ•˜๋ฉด ์ •๋ ฌ์˜ ์ตœ์†Œ ์‹œ๊ฐ„๋ณต์žก๋„์ธ O(nlgn)๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. min/..