[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ •๋ ฌ (์„ ํƒ ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 16. 19:52

์„ ํƒ ์ •๋ ฌ ๊ฐœ๋… max, min ์ •๋ ฌ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ ์›์†Œ๊นŒ์ง€ ํ›‘์œผ๋ฉด์„œ ์ตœ์†Œ๋‚˜ ์ตœ๋Œ€๋ฅผ ์ฐพ์•„์„œ ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ์ด๋‚˜ ๋์— ๋„ฃ๊ณ  ํ•ด๋‹น ์›์†Œ๋ฅผ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ์›์†Œ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์ •๋ ฌ์„ ์‹œํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ฌด์ž‘์œ„๋กœ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ํ›„, ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ์™€ ๊ตํ™˜ํ•œ๋‹ค. ๊ทธ ํ›„ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ œ์™ธํ•œ ์ฑ„๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•œ ํ›„, ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ์™€ ๊ตํ™˜ํ•œ๋‹ค. ๊ตฌํ˜„ ์˜์‚ฌ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (min ์ •๋ ฌ) for i=0 to n: a[i]๋ถ€ํ„ฐ a[n-1]๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๋น„๊ตํ•˜์—ฌ ์ตœ์†Œ๊ฐ’์ด ์žˆ๋Š” a[j]๋ฅผ ์ฐพ๋Š”๋‹ค. a[i]์™€ a[j]๋ฅผ ๋ฐ”๊พผ๋‹ค. (max ์ •๋ ฌ) for i=0 to n: a[0]๋ถ€ํ„ฐ a[n-i-1]๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๋น„๊ตํ•˜์—ฌ ์ตœ๋Œ€๊ฐ’์ด ์žˆ๋Š” ..

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

์ •๋ ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์ด๋ฅผ ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ '์ •๋ ฌ'์ด๋‹ค. ๋ณดํ†ต ์ปดํ“จํ„ฐ์—์„œ๋Š” ํƒ์ƒ‰์„ ์œ„ํ•ด์„œ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํƒ์ƒ‰์€ ์ •๋ ฌ์„ ํ†ตํ•ด ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์ง€๋งŒ, ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•ด๋‘๋ฉด ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ด์ง„ ํƒ์ƒ‰์ด๋ผ๋Š” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ช‡ ๋ฒˆ์ด๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์šฉํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฃผ์–ด์ง„ ๋ฌด์ž‘์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์— ๋งŽ์€ ์—ฐ๊ตฌ์ž๋“ค์ด ๋ฐฉ๋ฒ•์„ ๋‚ด๋†“์•˜๋Š”๋ฐ, ์•ž์œผ๋กœ ์„ค๋ช…ํ•  6๊ฐœ์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ทธ ์™ธ์—๋„ ๋งŽ์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•œ๋‹ค. ๋ชจ๋“  ์ •๋ ฌ์˜ ์„ค๋ช…์— ์•ž์„œ์„œ ์˜ˆ์ œ๋กœ ์„ค๋ช…ํ•  ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฌด์ž‘์œ„๋กœ ๋ฐฐ์น˜๋˜์–ด์žˆ๋Š” 1~7์˜ ๋ฐ์ดํ„ฐ์ด๋‹ค. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๋น„๊ต + ์ด๋™์œผ๋กœ ์ธก์ •ํ•œ๋‹ค. ํŠน์„ฑ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฌ๋Ÿฌ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„ ๋ณต..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 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์ด๋ฉด ..