์•Œ๊ณ ๋ฆฌ์ฆ˜ 3

[Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Sort Algorithm)

์ •๋ ฌ (Sorting) ? - ์–ด๋–ค ๋ฐ์ดํ„ฐ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ - ์ •๋ ฌ์€ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ ์‹œ, ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ•„์š” - ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ณ ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต์˜ ํ•„์ˆ˜ ๋ฒ„๋ธ” ์ •๋ ฌ(bubble sort) : ๋‘ ์ธ์ ‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•ด์„œ, ์•ž์—์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋’ค์—์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํฌ๋ฉด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟˆ def bubblesort(data): for index in range(len(data) - 1 ): swap = False for index2 in range(len(data) - index - 1): if data[index2] > data[index2 + 1]: data[index2], data[index2 + 1] = data[index2 + 1], data[index2] swap..

[Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„ : ์‹œ๊ฐ„ ๋ณต์žก๋„ / Big-O (๋น… ์˜ค) ํ‘œ๊ธฐ๋ฒ•

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„ ? ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์–‘ํ•  ์ˆ˜ ์žˆ์Œ => ์–ด๋Š ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋” ์ข‹์€์ง€๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด, ๋ณต์žก๋„ ๊ณ„์‚ฐ ํ•„์š” ์‹œ๊ฐ„ ๋ณต์žก๋„ : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์†๋„ (๋ฐ˜๋ณต๋ฌธ์ด ์ˆ˜ํ–‰์‹œ๊ฐ„ ์ง€๋ฐฐ) ๊ณต๊ฐ„ ๋ณต์žก๋„ : ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ํ‘œ๊ธฐ๋ฒ• Big O (๋น…-์˜ค) ํ‘œ๊ธฐ๋ฒ• : O(N) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์•…์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ํ‘œ๊ธฐ ๊ฐ€์žฅ ๋งŽ์ด/์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•จ ์•„๋ฌด๋ฆฌ ์ตœ์•…์˜ ์ƒํ™ฉ์ด๋ผ๋„, ์ด์ •๋„์˜ ์„ฑ๋Šฅ์€ ๋ณด์žฅํ•œ๋‹ค๋Š” ์˜๋ฏธ O(์ž…๋ ฅ) : ์ž…๋ ฅn์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ ํ•จ์ˆ˜ -> n์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Œ โ„ฆ (์˜ค๋ฉ”๊ฐ€) ํ‘œ๊ธฐ๋ฒ• : โ„ฆ(N) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ƒ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ํ‘œ๊ธฐ Θ (์„ธํƒ€) ํ‘œ๊ธฐ๋ฒ• : Θ(N) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‰๊ท  ์‹คํ–‰ ์‹œ๊ฐ„์„ ํ‘œ๊ธฐ

[Algorithm] ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ž๋ฃŒ๊ตฌ์กฐ ? ์ž๋ฃŒ๊ตฌ์กฐ , ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, data structure ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธ ์ฝ”๋“œ ์ƒ์—์„œ ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด, ๋ฐ์ดํ„ฐ ํŠน์„ฑ์— ๋”ฐ๋ผ, ์ฒด๊ณ„์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™” => ์–ด๋–ค ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ, ์ฝ”๋“œ ํšจ์œจ์ด ๋‹ฌ๋ผ์ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ? ์•Œ๊ณ ๋ฆฌ์ฆ˜, algorithm ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ/๋ฐฉ๋ฒ• ์–ด๋–ค ๋ฌธ์ œ์— ๋Œ€ํ•ด ํŠน์ •ํ•œ '์ž…๋ ฅ'์„ ๋„ฃ์œผ๋ฉด, ์›ํ•˜๋Š” '์ถœ๋ ฅ'์„ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ