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

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

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐฑ์ค€ 1753๋ฒˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐฐ๋‹ฌ
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 4. 26. 00:39

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋… ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ํ•˜๋‚˜์˜ ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ์œผ๋กœ์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ Single source shortest paths problem ๋กœ์ง ๋ชจ๋“  ์ •์ ๋“ค์€ ์ฒ˜์Œ์— ๋ฌดํ•œ๋Œ€ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. ์ •์  A์—์„œ ์ •์  B๊ฐ€ ์ด์–ด์ง€๋ฉด ์ •์  A๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ + A์—์„œ B๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ๋งŒ์•ฝ B๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’(์ฆ‰, A์—์„œ B๋กœ ์ด์–ด์ง€๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์˜ํ•œ ๊ฐ’)๊ณผ 2๋ฒˆ์—์„œ ๊ณ„์‚ฐํ•œ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ํ›„์ž๊ฐ€ ๋” ์ž‘๋‹ค๋ฉด ๊ฐฑ์‹ ํ•œ๋‹ค. ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •์ ๋ถ€ํ„ฐ ์ด์–ด์„œ ๋ฐ˜๋ณตํ•œ๋‹ค. (๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ด์œ ๋Š” ์ž‘์ง€ ์•Š์€ ๊ฐ’๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋ฉด ์“ธ๋ชจ์—†๋Š” ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์—†๋‹ค.) ์ž‘์€ ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ์ด ๋˜์–ด์•ผ ..

[์ •๋ ฌ] Selection Sort
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 4. 20. 23:50

์„ ํƒ ์ •๋ ฌ์˜ ๊ฐœ๋… ์„ ํƒ ์ •๋ ฌ์ด๋ž€? ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๊ณ , ๊ทธ ์œ„์น˜์— ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„์ง€ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋™์ž‘ ๋ฐฉ์‹ 1. ๋ฆฌ์ŠคํŠธ ๊ธธ์ด(n)์˜ -1 ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค. (์•ž์—์„œ๋ถ€ํ„ฐ ์œ„์น˜๋ฅผ ์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๋งˆ์ง€๋ง‰ ๊ฐ’์€ ์ž๋™์œผ๋กœ ์œ„์น˜๊ฐ€ ์ •ํ•ด์ง„๋‹ค) 1-2. ์„ ํƒ๋œ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์œ„์น˜์˜ ๊ฐ’๊ณผ ๊ต์ฒดํ•œ๋‹ค. 1-1. ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์œ„์น˜๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๊ฐ’๊นŒ์ง€ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. void sort() { int min; // 1. ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์œ„์น˜๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ for(int i=0; i

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์™ธํŒ์› ๋ฌธ์ œ
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 1. 8. 20:22

์™ธํŒ์› ๋ฌธ์ œ๋ž€? ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์ตœ์ ํ™” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ Traveling Sales-man Problem (TSP)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์–ด๋–ค ๋‚˜๋ผ์— n(2

[์ •๋ ฌ] Insertion Sort
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 1. 6. 21:50

์‚ฝ์ž… ์ •๋ ฌ์˜ ๊ฐœ๋… ์‚ฝ์ž… ์ •๋ ฌ์ด๋ž€? ์„ ํƒ ์ •๋ ฌ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ฐพ๋Š” ์ •๋ ฌ์ด๋‹ค. ํ˜„์žฌ Key ์•ž์— ์œ„์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋“ค์ด๋ฉฐ, ์ •๋ ฌ์ด ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋“ค ์‚ฌ์ด์— Key์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์‚ฝ์ž…์ •๋ ฌ์ด๋‹ค. ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„๊ต๋ฅผ ๋‹จ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์„ ์˜ ๊ฒฝ์šฐ O(N)์˜ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€๋‹ค. ๋™์ž‘ ๋ฐฉ์‹ ๋ฆฌ์ŠคํŠธ ๊ธธ์ด(n)์˜ -1 ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค. (๋งจ ์•ž์˜ ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธํ•œ๋‹ค.) 1-2. ํ•ด๋‹น ์œ„์น˜์— ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. 1-1. ํ˜„์žฌ ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ์™€ ์•ž์— ์œ„์น˜ํ•œ ์ •๋ ฌ๋œ ๊ฐ’๋“ค์„ ๋น„๊ตํ•˜๋ฉฐ ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค. void sort(int[] numbers) { // 1. for(int i=1; i=0 && numbers[j] > temp; j--) { nu..