[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ •๋ ฌ (ํ€ต ์ •๋ ฌ, ํ•ฉ๋ณ‘ ์ •๋ ฌ)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 25. 22:16

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

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 4. 1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ํ€ต ์ •๋ ฌ ์‹œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 28. 10:42

Quick sort '์•Œ๊ณ ๋ฆฌ์ฆ˜' ์ „๊ณต ์ˆ˜์—…์‹œ๊ฐ„์— ๋‚˜์˜จ ๊ณผ์ œ์ธ '1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ํ›„ ํ•ด์‹œ ๊ฐ’ ๊ตฌํ•˜๊ธฐ'๋ฅผ ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค. ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ• ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ตœ์•… : O(n^2) ํ‰๊ท  : O(nlogn) ์„ค๊ณ„๋ฅผ ํ†ตํ•ด์„œ ๊ฐœ์„  ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„ ๊ตฌํ˜„ ๊ณผ์ • pivot์„ ์„ ํƒํ•œ๋‹ค. ์œ„์ชฝ ํฌ์ธํ„ฐ๊ฐ€ ๋‚ฎ์€ ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. ์•„๋ž˜์ชฝ ํฌ์ธํ„ฐ๊ฐ€ ๋†’์€ ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์š”์†Œ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. 2-4๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ต์ฐจํ•œ๋‹ค๋ฉด ํ˜„์žฌ ํ”ผ๋ฒ—๊ณผ ํ•ด๋‹น ์œ„์น˜์˜ ๊ฐ’์„ ๊ตํ™˜ํ•œ๋‹ค. ํ”ผ๋ฒ—๊ณผ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ section, ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ section์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ section์— ๋Œ€ํ•ด 1-5๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. section์˜ ํฌ๊ธฐ๊ฐ€ 0 ๋˜๋Š” 1์ด๋ฉด ..