Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

์‹œํ—˜์ด ๋งํ•˜๊ณ  ๋‚œ ๋’ค

๋‚˜๋Š” ์˜…์€ ๊ธฐ๋Œ€๊ฐ์ด ๋ญ์€ ์†์„ ์›€์ง์—ฌ ๋‚ด ์ ์ˆ˜๊ฐ€ ์ €์žฅ๋œ ํŒŒ์ผ์„ ์—ด์—ˆ๋‹ค. ์–ด๋””๋ณด์ž… xxxxx... xxx . . . oooo-ooooo : 58์  xxxx-xxxxx: 13์  oooo-ooooo : 48์  . . . ๋‚˜๋Š” ์ˆœ๊ฐ„์ ์œผ๋กœ ๋ฉˆ์นซํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณค ์ด๋‚ด ๊ทธ ๋ฉˆ์นซ๊ฑฐ๋ฆผ์กฐ์ฐจ ๋ฉˆ์ถ”์—ˆ๋‹ค. ๋ฉ- ํ•˜๋‹ค. ๋‚˜๋Š” ๊ธฐ๋Œ€๋ฅผ ์™„์ „ํžˆ ์ €๋ฒ„๋ฆฐ ๋‚˜์˜ ์ ์ˆ˜๋ฅผ ๋ณด๊ณ  ๊ทธ์ € ๋ฉํ•  ๋ฟ์ด์—ˆ๋‹ค. ์ด์ „ ๊ฐ™์œผ๋ฉด ๋ถ„๋…ธ์™€ ๋ถ€๋„๋Ÿฌ์›€, ์ˆ˜์น˜์‹ฌ ๋”ฐ์œ„์˜ ์—ฌ๋Ÿฌ ๊ฐ์ •์ด ๋‚˜๋ฅผ ์‚ฌ๋ฐฉ์—์„œ ๊ดด๋กญํ˜”๊ฒ ์ง€. ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ์กฐ๊ธˆ ๋‹ฌ๋ž๋‹ค. ํ‰์ •์„ ์ฐพ์€ ๊ฑธ๊นŒ? ์ต์ˆ™ํ•ด์ง„ ๊ฑธ๊นŒ? ๋‚˜๋Š” ์Šค์Šค๋กœ์—๊ฒŒ ์งˆ๋ฌธํ–ˆ๋‹ค. ์กฐ๊ธˆ๋„ ์ฆ๊ฒ์ง€ ์•Š์•˜๋‹ค. ์•„๋‹ˆ, ์ฆ๊ฒ๊ธฐ๋Š” ์ปค๋…• ๋ชธ์ด ๋ฌด๊ฒ๊ฒŒ๋งŒ ๋Š๊ปด์กŒ๋‹ค. ์ถ• ์ฒ˜์ง€๋Š” ๋Š๋‚Œ. ํ™œ๊ธฐ์ฐจ๊ฒŒ ๋– ๋“ค์–ด ๋Œ€๋Š” ๋ฐด๋“œ ๋ณด์ปฌ์˜ ์†Œ๋ฆฌ๊ฐ€ ๋ฐ‹๋ฐ‹ํ•˜๊ธฐ๋งŒ ํ•˜๋‹ค. ์–ด, ํฌ๊ธฐ๊ฐ€ ๋ญ˜๊นŒ? ์˜ค๋Š˜ ๋‚˜..

๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ 3๊ฐ• 1๋ถ€, ์‹ ๊ฒฝ๋ง๊ณผ ํ™œ์„ฑํ™” ํ•จ์ˆ˜ - ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ํ•œ๋น› ๋ฏธ๋””์–ด์—์„œ ์ถœํŒํ•œ '๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹'์ด๋ผ๋Š” ๊ต์žฌ์˜ ๋‚ด์šฉ์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ž๋ฃŒ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์…‰ํŠธ๋ก ์—์„œ ์‹ ๊ฒฝ๋ง์œผ๋กœ ์‹ ๊ฒฝ๋ง์˜ ์˜ˆ ์‹ ๊ฒฝ๋ง์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. Input์ด๋ผ๊ณ  ํ‘œ์‹œ๋œ ๊ฒƒ์€ ์ž…๋ ฅ์ธต, ๋งจ ์˜ค๋ฅธ์ชฝ ์ค„(Output)์„ ์ถœ๋ ฅ์ธต, ์ค‘๊ฐ„ ์ธต(Hidden)์„ ์€๋‹‰์ธต์ด๋ผ๊ณ  ํ•œ๋‹ค. ์€๋‹‰์ธต์˜ ๋‰ด๋Ÿฐ์€ ์‚ฌ๋žŒ ๋ˆˆ์—๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. 0์ธต์˜ ์ž…๋ ฅ์ธต, 1์ธต์ด ์€๋‹‰์ธต, 2์ธต์ด ์ถœ๋ ฅ์ธต์ด ๋œ๋‹ค. ํผ์…‰ํŠธ๋ก  ๋ณต์Šต ๊ธฐ์กด ํผ์…‰ํŠธ๋ก ์€ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. # ์‹ : y = 0 (b + w1x1 + w2x2 0) ์—ฌ๊ธฐ์„œ b๋Š” ํŽธํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ, ๋‰ด๋Ÿฐ์ด ์–ผ๋งˆ๋‚˜ ์‰ฝ๊ฒŒ ํ™œ์„ฑํ™”๋˜๋Š๋ƒ๋ฅผ ์ œ์–ดํ•œ๋‹ค. ํ•œํŽธ, w1๊ณผ w2๋Š” ๊ฐ..

๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ 2๊ฐ•, ํผ์…‰ํŠธ๋ก (Perceptron) ๊ฐœ๋… ์ตํžˆ๊ธฐ - ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ํ•œ๋น› ๋ฏธ๋””์–ด์—์„œ ์ถœํŒํ•œ '๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹'์ด๋ผ๋Š” ๊ต์žฌ์˜ ๋‚ด์šฉ์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ž๋ฃŒ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์…‰ํŠธ๋ก (perceptron) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํผ์…‰ํŠธ๋ก ์€ ํ”„๋ž‘ํฌ ๋กœ์  ๋ธ”๋ผํŠธ(Frank Rosenblatt)๊ฐ€ 1957๋…„์— ๊ณ ์•ˆํ•œ, ๋งค์šฐ ์˜ค๋ž˜๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ•˜์ง€๋งŒ ํผ์…‰ํŠธ๋ก ์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์€ ์‹ ๊ฒฝ๋ง๊ณผ ๋”ฅ๋Ÿฌ๋‹์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋ฐ ์ค‘์š”ํ•œ ์•„์ด๋””์–ด๋ฅผ ๋ฐฐ์šฐ๋Š” ์ผ๋„ ๋œ๋‹ค. ํผ์…‰ํŠธ๋ก ์ด๋ž€? ํผ์…‰ํŠธ๋ก ์€ ๋‹ค์ˆ˜์˜ ์‹ ํ˜ธ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ํ•˜๋‚˜์˜ ์‹ ํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์‹ ํ˜ธ๋ž€ ์ „๋ฅ˜๋‚˜ ๊ฐ•๋ฌผ์ฒ˜๋Ÿผ ํ๋ฆ„์ด ์žˆ๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•˜๋ฉด ์ข‹๋‹ค. ํผ์…‰ํŠธ๋ก  ์‹ ํ˜ธ๋Š” 'ํ๋ฅธ๋‹ค/์•ˆ ํ๋ฅธ๋‹ค(1์ด๋‚˜ 0)'์˜ ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‚ฌ์ง„์€ ์ž…๋ ฅ์ด 2๊ฐœ์ธ ํผ์…‰..

๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ 1๊ฐ•, ๋„˜ํŒŒ์ด(Numpy) ๋‹ค๋ฃจ๊ธฐ - ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ํ•œ๋น› ๋ฏธ๋””์–ด์—์„œ ์ถœํŒํ•œ '๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹'์ด๋ผ๋Š” ๊ต์žฌ์˜ ๋‚ด์šฉ์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋”ฅ๋Ÿฌ๋‹ ํŠœํ† ๋ฆฌ์–ผ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ž๋ฃŒ๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ฐ–์ถ”๊ธฐ ๋จผ์ €, ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•ด์ฃผ์ž. ํŒŒ์ด์ฌ์„ ์ด์šฉํ•ด ์‹ค์Šต์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ, ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์‹ค์Šต์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ฐ™์ด ์„ค์น˜๋˜์–ด ๋งค์šฐ ๊ฐ„ํŽธํ•˜๋‹ค. ์•„๋ž˜ ๋งํฌ์— ๋“ค์–ด๊ฐ€์„œ https://www.anaconda.com/distribution/#download-section Python 3.7 version ์ด๋ผ๊ณ  ์ ํžŒ ๊ณณ์—, ์‚ฌ์–‘์— ๋งž๊ฒŒ 64๋น„ํŠธ ํ˜น์€ 32๋น„ํŠธ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ฏธ ํŒŒ์ด์ฌ์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด, ์„ค์น˜๋œ ํŒŒ์ด์ฌ์— ๋งž๊ฒŒ 64๋น„ํŠธ, 3..

์šฐ๋ฆฌ๋Š” ํƒ€์ž์˜ ๊ถŒ๋ฆฌ๋ฅผ ๋ถ€์ •ํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ๋Š”๊ฐ€? <์„œ์šธ๋Œ€ ํ† ๋ก ํ•œ๋งˆ๋‹น>

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

ํž™ ์ •๋ ฌ(Heap sort) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

Heap sort python code implementation Heap sort ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์ž. ํž™ ์ •๋ ฌ(Heap Sort) ํž™์€ 2์ง„ ํŠธ๋ฆฌ์ธ๋ฐ, Min-heap(์ตœ์†Œ๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์— ์žˆ์Œ. ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•จ.)๊ณผ Max-heap(์ตœ๋Œ€๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์— ์žˆ์Œ. ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค ์ปค์•ผ ํ•จ.) ์œ„ํ‚ค ํ”ผ๋””์•„์˜ ์„ค๋ช…์„ ์ฐธ๊ณ ํ•ด ๋ณด์ž. n๊ฐœ์˜ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ์ด๋•Œ ๋ฃจํŠธ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋ถ€๋ชจ๋…ธ๋“œ, ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ, ์˜ค๋ฅธ์ชฝ ์ž์‹๋…ธ๋“œ ์ˆœ์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ์ตœ๋Œ€ ํž™์„ ๊ตฌ์„ฑํ•œ๋‹ค. ์ตœ๋Œ€ ํž™์ด๋ž€ ๋ถ€๋ชจ๋…ธ๋“œ๊ฐ€ ์ž์‹๋…ธ๋“œ๋ณด๋‹ค ํฐ ํŠธ๋ฆฌ๋ฅผ ๋งํ•˜๋Š”๋ฐ, ๋‹จ๋ง ๋…ธ๋“œ๋ฅผ ์ž์‹๋…ธ๋“œ๋กœ ๊ฐ€์ง„ ๋ถ€๋ชจ๋…ธ๋“œ๋ถ€ํ„ฐ ๊ตฌ์„ฑํ•˜๋ฉฐ ์•„๋ž˜๋ถ€ํ„ฐ ๋ฃจํŠธ๊นŒ์ง€ ์˜ฌ๋ผ์˜ค๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ˆ˜(๋ฃจํŠธ์— ์œ„์น˜)..

Data Structures, Algorithm 2019. 10. 1. 16:42
ํ€ต ์ •๋ ฌ(Quick sort) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

Quick sort python code implementation ํ€ต์†ŒํŠธ(Quicksort)๋ฅผ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ํ€ต ์†ŒํŠธ(Quick sort) ํ€ต ์†ŒํŠธ๋Š” ๋ฐฐ์—ด์„ ํŒŒํ‹ฐ์…˜์„ ์ด์šฉํ•ด์„œ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๋‹ค์‹œ ์ด์ „ ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ ๋ฐฉ์‹์„ ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค. ํŒŒํ‹ฐ์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ, ์ œ์ผ ๋ ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ pivot์œผ๋กœ ์žก๊ณ , ํ•ด๋‹น pivot๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’์€ ์™ผ์ชฝ์œผ๋กœ ๋ชฐ์•„ ๋„ฃ๊ณ , ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ชฐ์•„๋„ฃ๋Š”๋‹ค. ์ด ๊ณผ์ •์„ ์žฌ๊ท€์ ์œผ๋กœ ๋ฐ˜๋ณตํ•˜๋ฉด, ๊ฐ ํŒŒํ‹ฐ์…˜๋งˆ๋‹ค O(n) ํƒ€์ž„์ด ๊ฑธ๋ฆฌ๊ณ , ์ด ํŒŒํ‹ฐ์…˜์€ ํ‰๊ท ์ ์œผ๋กœ O(logn) ํƒ€์ž„์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ, ์ด ์‹œ๊ฐ„์€ O(nlogn)์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์œ„ํ‚คํ”ผ๋””์•„์˜ ์„ค๋ช…์„ ์ฐธ๊ณ ํ•ด ๋ณด์ž. ํŒŒํ‹ฐ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•œ๋‹ค. ์ˆ˜๋„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž. function par..

Data Structures, Algorithm 2019. 10. 1. 16:24
๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

Merge sort python code implementation merge sort ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์ž. ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort) ์œ„ํ‚คํ”ผ๋””์•„์˜ ์„ค๋ช…์„ ์ฐธ๊ณ ํ•ด ๋ณด์ž. ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 0 ๋˜๋Š” 1์ด๋ฉด ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ž˜๋ผ ๋น„์Šทํ•œ ํฌ๊ธฐ์˜ ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆˆ๋‹ค. ๊ฐ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ•ฉ๋ณ‘ ์ •๋ ฌ์„ ์ด์šฉํ•ด ์ •๋ ฌํ•œ๋‹ค. ๋‘ ๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœ ํ•ฉ๋ณ‘ํ•œ๋‹ค. ๋ณ‘ํ•ฉ ์ •๋ ฌ์˜ ํ•ต์‹ฌ์€, ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•๋ก ์„ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ฐ˜์œผ๋กœ ์ชผ๊ฐ  ๋…€์„์— ์ ์šฉํ•ด์„œ ์ •๋ ฌ์„ ์™„๋ฃŒํ•œ ํ›„, ์ •๋ ฌ์ด ์™„๋ฃŒ๋œ ๋ฐ˜์ชฝ์งœ๋ฆฌ 2๊ฐœ๋ฅผ ๋‹ค์‹œ ํ•ฉ์นจ์œผ๋กœ์จ ์ •๋ ฌ์„ ๋งˆ์นœ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, merge_sortํ•จ์ˆ˜๋Š” 2๊ฐœ์˜ merge..

Data Structures, Algorithm 2019. 9. 19. 17:52
๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

Bubble sort python code implementation. ๋ฒ„๋ธ” ์ •๋ ฌ์„ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ๋ฒ„๋ธ” ์ •๋ ฌ (Bubble Sort) ์œ„ํ‚คํ”ผ๋””์•„์˜ ์ •์˜๋ฅผ ์ฐธ๊ณ ํ•ด ๋ณด์ž. : ๊ฑฐํ’ˆ ์ •๋ ฌ(Bubble sort)์€ ๋‘ ์ธ์ ‘ํ•œ ์›์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n^2)์œผ๋กœ ์ƒ๋‹นํžˆ ๋Š๋ฆฌ์ง€๋งŒ, ์ฝ”๋“œ๊ฐ€ ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ์›์†Œ์˜ ์ด๋™์ด ๊ฑฐํ’ˆ์ด ์ˆ˜๋ฉด์œผ๋กœ ์˜ฌ๋ผ์˜ค๋Š” ๋“ฏํ•œ ๋ชจ์Šต์„ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€์–ด์ง„ ์ด๋ฆ„์ด๋‹ค. ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ๋ฒ„๋ธ” ์ •๋ ฌ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. ๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋งค์šฐ ๋‹จ์ˆœํ•œ๋ฐ, ๊ทธ๋ƒฅ ์ฒ˜์Œ๋ถ€ํ„ฐ 2๊ฐœ์”ฉ ์ง์„ ์ง€์–ด ๊ฐ’์„ ๋น„๊ตํ•œ ํ›„, ์ž‘์€ ๋…€์„์€ ์•ž์œผ๋กœ, ํฐ ๋…€์„์€ ๋’ค๋กœ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค. (55, 07)์€ (07, 55)๋กœ, (55, 78)์€ ๊ทธ๋Œ€๋กœ, (78, 12)๋Š” (12..

Data Structures, Algorithm 2019. 9. 19. 15:59
์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ๊ตฌํ˜„

Insertion sort python code implemetation ์‚ฝ์ž… ์ •๋ ฌ์„ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ์‚ฝ์ž… ์ •๋ ฌ (Insertion sort) ์œ„ํ‚คํ”ผ๋””์•„์— ๋‚˜์˜จ ์ •์˜๋ฅผ ์ฐธ๊ณ ํ•ด ๋ณด์ž. ์„ ํƒ ์ •๋ ฌ(้ธๆ“‡ๆ•ดๅˆ—, selection sort)์€ ์ œ์ž๋ฆฌ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ ์ค‘์— ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. ๊ทธ ๊ฐ’์„ ๋งจ ์•ž์— ์œ„์น˜ํ•œ ๊ฐ’๊ณผ ๊ต์ฒดํ•œ๋‹ค(ํŒจ์Šค(pass)). ๋งจ ์ฒ˜์Œ ์œ„์น˜๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค. ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฐ€์ • ์•„๋ž˜, n๊ฐœ์˜ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐ์—๋Š” Θ(n^2) ๋งŒํผ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ์„ ํƒ ์ •๋ ฌ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹จ์ˆœํ•˜๋ฉฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œํ•œ์ ์ธ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ์‹œ ์„ฑ๋Šฅ ์ƒ์˜ ์ด์ ์ด..

Data Structures, Algorithm 2019. 9. 19. 15:51