์™ธ๋ถ€ ์ •๋ ฌ (External Sort)
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 10. 23. 13:38

์™ธ๋ถ€ ์ •๋ ฌ(External Sort)์ด๋ž€? ๋ฐ์ดํ„ฐ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ณด๋‹ค ์ปค ์ •๋ ฌ ํ•  ๋ฐ์ดํ„ฐ๋“ค์„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์˜จ์ „ํžˆ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ๊ธฐ์–ต์žฅ์น˜๊ฐ€ 1GB๊ณ , ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ์ด 100GB๋ผ๊ณ  ํ–ˆ์„ ๋•Œ ๋‚ด๋ถ€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•  ์ˆ˜ ์—†๋‹ค. ์™ธ๋ถ€ ์ •๋ ฌ ๊ณผ์ • ๋ถ„ํ•  ์™ธ๋ถ€ ์ •๋ ฌ์€ ์ฃผ๊ธฐ์–ต์žฅ์น˜์—์„œ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฝ์–ด, ๋‚ด๋ถ€์ •๋ ฌ์„ ์ˆ˜ํ–‰ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜์— ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚ด๋ถ€ ์ •๋ ฌ์€ ์ƒํ™ฉ์— ๋งž๋Š” ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 1. ๋ฉ”๋ชจ๋ฆฌ ๋งŒํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ๋‹ค. 2. ํ™œ์šฉํ•  ๋‚ด๋ถ€ ์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. 3. ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜์— ๊ธฐ๋กํ•œ๋‹ค. ์ •๋ณต ์ •๋ ฌ๋˜์–ด ๋‚˜๋ˆ ์ง„ ๋ธ”๋ก๋“ค์„ ํ•˜๋‚˜์˜ ๋ธ”๋ก์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Merge ..

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 10. 22. 23:40

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต Reference https://d2.naver.com/helloworld/0315536

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ณด์„ ์‡ผํ•‘ (2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ)
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 9. 15. 22:52

https://programmers.co.kr/learn/courses/30/lessons/67258?language=java ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ณด์„ ์‡ผํ•‘ ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr ๋ฌธ์ œ ์ •๋ฆฌ 1. ์ง„์—ด๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ณด์„์„ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ ํฌํ•จํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ์—ฐ์†๋œ ๊ตฌ๊ฐ„์„ ๊ตฌํ•˜์„ธ์š”. 2. ๋งŒ์•ฝ ๊ฐ€์žฅ ์งง์€ ์—ฐ์†๋œ ๊ตฌ๊ฐ„์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด, ๊ฐ€์žฅ ์™ผ์ชฝ์— ์œ„์น˜ํ•œ ๊ตฌ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”. 3. ์ง„์—ด๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ณด์„์„ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ ํฌํ•จํ•˜๋Š” ๊ตฌ๊ฐ„์€ ๋ฌด์กฐ๊ฑด 1๊ฐœ ์ด์ƒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์™„์ „ ํƒ์ƒ‰ ์ด ๋ฌธ์ œ๋Š” ์šฐ์„  ์ •ํ™•๋„ ํ‰๊ฐ€์™€ ํšจ์œจ์„ฑ ํ‰๊ฐ€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํšจ์œจ์„ฑ ํ‰๊ฐ€๊ฐ€ ์กด์žฌํ•œ๋‹ค..

[์ •๋ ฌ] Quick Sort
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 6. 22. 18:45

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

[์ •๋ ฌ] Merge Sort
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 5. 2. 22:53

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