[์•Œ๊ณ ๋ฆฌ์ฆ˜] 3๊ฐ• - ์ •๋ ฌ(1)

2026. 3. 5. 17:59ยท๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿงฌ์•Œ๊ณ ๋ฆฌ์ฆ˜

โœ… 1. ์ •๋ ฌ ๊ธฐ๋ณธ ๊ฐœ๋…

(1) ์ •๋ ฌ ์ด๋ž€?

  • ์ •๋ ฌ ์ˆ˜ํ–‰ ์‹œ์ ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋‚ด๋ถ€ ์ •๋ ฌ, ์™ธ๋ถ€ ์ •๋ ฌ๋กœ ๋‚˜๋‰จ.
  • ๋‚ด๋ถ€ ์ •๋ ฌ: ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ํ›„ ์ •๋ ฌ ํ•˜๋Š” ๋ฐฉ์‹
  • ์™ธ๋ถ€ ์ •๋ ฌ: ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ „์ฒด ๋ฐ์ดํ„ฐ ์ €์žฅ ํ›„ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ์˜ฎ๊ฒจ์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹

(2) ๋‚ด๋ถ€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋‚ด๋ถ€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ •๋ ฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋น„๊ต ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐ์ดํ„ฐ ๋ถ„ํฌ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œผ๋กœ ๋‚˜๋‰จ.
  • ๋น„๊ต ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋‘ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์ง์ ‘ ๋น„๊ตํ•˜์—ฌ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋จ. ( ์š”์†Œ๊ฐ„์˜ ๋น„๊ต )
  • ** ๋น„๊ต ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ: ํ‚ค๊ฐ’์˜ ๋น„๊ต ํšŸ์ˆ˜๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ์˜ ์ฒ™๋„๊ฐ€ ๋จ. **
  • ๋ฐ์ดํ„ฐ ๋ถ„ํฌ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ฐ’๋“ค ๊ฐ„์˜ ์ง์ ‘์ ์ธ ๋น„๊ต๋ฅผ ํ•˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ(๊ฐ’์˜ ๋ฒ”์œ„, ์ž๋ฆฟ์ˆ˜ ๋“ฑ)์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ๋ฒ„ํ‚ท์— ๋ถ„์‚ฐ์‹œํ‚จ ๋’ค ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์ž„.
  • ** ์‰ฝ๊ฒŒ ๋งํ•ด, ๋ฐ์ดํ„ฐ ์š”์†Œ๊ฐ„์˜ ๋น„๊ต๊ฐ€ ์•„๋‹Œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ทœ์น™์— ๋”ฐ๋ผ(์กฐ๊ฑด) ์ ˆ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์ •๋ ฌ์ด ๋˜๋Š” ๋ฐฉ์‹์ž„. **
  • ** ๋ฐ์ดํ„ฐ ๋ถ„ํฌ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ: ๋ฐ์ดํ„ฐ์˜ ์ด๋™ ํšŸ์ˆ˜ **

(3) ์ •๋ ฌ ๊ด€๋ จ ๊ฐœ๋… - ์•ˆ์ •์  ์ •๋ ฌ

  • ์•ˆ์ •์  ์ •๋ ฌ: "๋™์ผํ•œ ๊ฐ’" ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ ํ•  ๋•Œ, ์ •๋ ฌ ์ „๊ณผ ํ›„์—๋„ ์ƒ๋Œ€์  ์œ„์น˜๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋Š” ์ •๋ ฌ์„ ์˜๋ฏธํ•จ.
  • ** ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฝ์ž…์ •๋ ฌ, ๊ฑฐํ’ˆ์ •๋ ฌ, ๋ณ‘ํ•ฉ์ •๋ ฌ์ด ์žˆ์œผ๋ฉฐ, ๋ฐ˜๋ฉด ๋ถˆ์•ˆ์ • ์ •๋ ฌ๋กœ๋Š” ์„ ํƒ์ •๋ ฌ, ํ€ต์ •๋ ฌ, ํž™์ •๋ ฌ์ด ์žˆ์Œ. **

(4) ์ •๋ ฌ ๊ด€๋ จ ๊ฐœ๋… - ์ œ์ž๋ฆฌ ์ •๋ ฌ

  • ์ œ์ž๋ฆฌ ์ •๋ ฌ: ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ๋”๋ฏธ ์•ˆ์—์„œ ์š”์Šค๋“ค์˜ ์œ„์น˜๋งŒ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ฑฐ์˜ ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š์Œ.
  • ** ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฒ„๋ธ”์ •๋ ฌ, ์„ ํƒ์ •๋ ฌ, ์‚ฝ์ž…์ •๋ ฌ, ํ€ต์ •๋ ฌ, ํž™์ •๋ ฌ์ด ์žˆ์Œ. **

(5) ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ๊ฐ€์ •

  • ํ•ด๋‹น ๊ฐ€์ •์„ ํ†ตํ•ด์„œ ์•ž์„œ ๋ฐฐ์šธ ์ •๋ ฌ ๋ฐฉ์‹์„ ์„ค๋ช… ํ•  ์˜ˆ์ •์ž„.

โœ… 2. ์„ ํƒ ์ •๋ ฌ

(1) ์„ ํƒ ์ •๋ ฌ ์ด๋ž€?

  • ์„ ํƒ ์ •๋ ฌ: ์ž…๋ ฅ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์„ ํƒํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ** ์ถ”๊ฐ€์ ์ธ ๋ฐฐ์—ด์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ž…๋ ฅ ๋ฐฐ์—ด ๋‚ด๋ถ€์—์„œ ๊ฐ€์žฅ ์ž‘์€๊ฐ’์„ ์ฐพ์•„์„œ ๋งจ ์•ž์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ณด๋ฉด ๋จ. **

(2) ์„ ํƒ ์ •๋ ฌ - ์ฒ˜๋ฆฌ ๊ณผ์ • (flow chart)

  • (1) i < n - 1: ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต ( ์ฆ‰, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค๊ณ  ๋ณด๋ฉด๋˜๊ณ  n ์€ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ n - 1 ์€ ์ธ๋ฑ์Šค๋ฅผ ์˜๋ฏธ )
  • (2) ๋ฏธ์ •๋ ฌ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ตœ์†Œ๊ฐ’์„ ์ฐพ์Œ.
  • (3) ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์™€ ์ตœ์†Œ๊ฐ’๊ณผ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟˆ.
  • (4) ์ฒซ ๋ฒˆ์งธ ์ˆœํšŒ๋กœ ์ฒซ ์ธ๋ฑ์Šค๋Š” ์ œ์ผ ์ตœ์†Œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์ •๋ ฌ์ด ๋˜๊ฒŒ ๋จ.
  • (5) ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ์ •๋ ฌ์ด ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ, ๋‹ค์Œ ์ธ๋ฑ์Šค์— ์ตœ์†Œ๊ฐ’์„ ๋˜ ๋„ฃ์œผ๋ฉฐ ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณต

  • ์ฝ”๋“œ๋กœ์จ ๊ตฌํ˜„์€ 2์ค‘ for ๋ฌธ์„ ํ™œ์šฉ์„ ํ•จ.
  • ๋‚ด๋ถ€ for๋ฌธ: ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ตœ์†Œ๊ฐ’์„ ์ฐพ๊ณ  ์ •๋ ฌ ๋  ์ œ์ผ ์ž‘์€ ๊ฐ’์„ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์™€ ์œ„์น˜๋ฅผ ๊ตํ™˜์„ ํ•ด์คŒ.
  • ์ฆ‰, ๋‚ด๋ถ€ for ๋ฌธ์€ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ตœ์†Œ๊ฐ’์„ ํ•˜๋‚˜๋งŒ ์ฐพ์•„์„œ ์ •๋ ฌ์„ ํ•ด์ฃผ๋Š” ํ•˜๋‚˜์˜ ๋‹จ๊ณ„๋ผ๊ณ  ๋ณด๋ฉด ๋จ.
  • ์™ธ๋ถ€ for๋ฌธ: ๋‚ด๋ถ€ for ๋ฌธ๋งŒ ์žˆ์œผ๋ฉด ์ตœ์†Œ๊ฐ’ ํ•˜๋‚˜๋งŒ ์ •๋ ฌ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๋งŒํผ ๋Œ๋ ค์„œ ๋ชจ๋“  ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ด์คŒ.
  • ** ์ฆ‰, ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜์ธ j ๋ฅผ min ๋ณ€์ˆ˜์— ๋‹ด์Œ์œผ๋กœ์จ ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ๋ฐ˜๋ณต๋ฌธ ํ•œ ์‚ฌ์ดํด์ด ์ข…๋ฃŒ๋˜๋Š” ์‹œ์ ์— ํ•ด๋‹น ์ตœ์†Œ๊ฐ’ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์š”์†Œ์™€ ๊ตํ™˜์„ ์‹œํ‚ด. **

  • ์ฆ‰, ์„ ํƒ ์ •๋ ฌ์€ ๋‹จ๊ณ„๋ณ„๋กœ ์ตœ์†Œ๊ฐ’์„ ์ฐพ์•„์„œ ๊ตํ™˜์„ ํ•ด์ฃผ๊ณ  ๊ตํ™˜ ๋œ ์ตœ์†Œ๊ฐ’์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ธ๋ฑ์Šค๋“ค์—์„œ ์ฐพ๋Š” ๊ฒƒ์ž„.
  • ** 30๊ณผ 20 = 20, 20๊ณผ 40 = 20, 20๊ณผ 35 = 5, 5์™€ 10, 45, 50, 25, 15 = 5 ์ด๋Ÿฐ์‹์œผ๋กœ ์ง„ํ–‰๋จ **

(3) ์„ ํƒ ์ •๋ ฌ - ์„ฑ๋Šฅ๊ณผ ํŠน์ง•

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ n: ์ •๋ ฌ ํ•  ๋Œ€์ƒ์ธ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์˜ ๊ฐœ์ˆ˜ ( ์ฆ‰, ์ธ๋ฑ์Šค )
  • ์‹œ๊ฐ„ ๋ณต์žก๋„: 2์ค‘ for ๋ฌธ์„ ํ™œ์šฉํ•˜๊ธฐ์— ์ƒ์ˆ˜๊ฐ’์„ ์ œ์™ธํ•œ n^2 ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง.

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ(๋ฐฐ์—ด ์š”์†Œ๋“ค์˜ ๋น„์ •๋ ฌ ๋ชจ์Šต)์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ๋™์ผํ•œ ์„ฑ๋Šฅ์ธ O(n^2)์„ ๊ฐ€์ง.
  • ** ์ฆ‰,์ž…๋ ฅ ๋ฐ์ดํ„ฐ์ธ ๋น„์ •๋ ฌ ๋ฐฐ์—ด์˜ ์ˆœ์„œ์— ๋Œ€ํ•ด์„œ ๋ฏผ๊ฐํ•˜์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ์ž„. **
  • ์ œ์ž๋ฆฌ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์ž…๋ ฅ ๋ฐฐ์—ด A[] ์ด์™ธ์— ์ƒ์ˆ˜ ๊ฐœ ์ €์žฅ ๊ณต๊ฐ„์ธ i, j, min, tmp ๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ž๋ฆฌ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž„.
  • ๋ถˆ์•ˆ์ • ์ •๋ ฌ: ๋™์ผํ•œ ์š”์†Œ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ์•ˆ์ • ์ •๋ ฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.

โœ… 3. ๋ฒ„๋ธ” ์ •๋ ฌ

(1) ๋ฒ„๋ธ” ์ •๋ ฌ ์ด๋ž€?

  • ๋ฒ„๋ธ” ์ •๋ ฌ: ์ธ์ ‘ํ•œ ๋ชจ๋“  ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ต ํ›„ ์กฐ๊ฑด(ํฌ๊ณ  ์ž‘์€)์— ๋”ฐ๋ผ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ์ •๋ ฌ ๋ฐฉ์‹์ž„.
  • ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ์ง„ํ–‰: ๋‘ ๋ฐ์ดํ„ฐ ๋น„๊ต์‹œ ์˜ค๋ฅธ์ชฝ ๋์— ํฐ ๊ฐ’์„ ์œ„์น˜ ์‹œํ‚ด.
  • ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ ์ง„ํ–‰: ๋‘ ๋ฐ์ดํ„ฐ ๋น„๊ต์‹œ ์™ผ์ชฝ ๋์— ์ž‘์€ ๊ฐ’์„ ์œ„์น˜ ์‹œํ‚ด.

(2) ๋ฒ„๋ธ” ์ •๋ ฌ - ์ฒ˜๋ฆฌ ๊ณผ์ •

  • ์™ผ์ชฝ ๊ทธ๋ฆผ: ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋น„๊ต๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ, ๋” ํฐ ๊ฐ’์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌ
  • ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ: ์™ผ์ชฝ์œผ๋กœ ๋น„๊ต๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ, ๋” ์ž‘์€ ๊ฐ’์„ ์™ผ์ชฝ์œผ๋กœ ์ •๋ ฌ

  • ์™ธ๋ถ€ for๋ฌธ: ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์š”์†Œ ๊ฐœ์ˆ˜์ธ ์ธ๋ฑ์Šค ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ์‹œ์ผœ์คŒ.
  • ๋‚ด๋ถ€ for๋ฌธ: ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒ ํ•˜๋ฉฐ, ์™ผ์ชฝ ๋ฐ์ดํ„ฐ์™€ ์˜ค๋ฅธ์ชฝ ๋ฐ์ดํ„ฐ ๋น„๊ต ํ›„ ์ •๋ ฌ์„ ๋ฐ˜๋ณตํ•จ.
  • i < n - 1: ๋ฐ˜๋ณต ์กฐ๊ฑด์‹์€ n - 1 ๋ฒˆ ๋งŒํผ๋งŒ ๋„๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š”, ์ˆซ์ž 5๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด 4๊ฐœ์˜ ์œ„์น˜๋ฅผ ๋‹ค ์ฐพ์•„์ฃผ๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งˆ์ง€๋ง‰ ํ•˜๋‚˜์˜ ์œ„์น˜๋„ ์ •๋ ฌ์ด ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ ๊ตณ์ด ํ•œ ๋ฒˆ๋” ๋Œ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž„.
์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
  • 2์ค‘ for ๋ฌธ ํ™œ์šฉ: ๋‹จ๊ณ„๋ณ„๋กœ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋น„๊ต ํ›„ ์ •๋ ฌ์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋‹จ๊ณ„๋งˆ๋‹ค ๋น„๊ต์‹œ
  • ์˜ค๋ฅธ์ชฝ->์™ผ์ชฝ: ๋‹จ๊ณ„๋ณ„๋กœ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋น„๊ต ํ›„ ํฐ ๊ฐ’๊ณผ ์ž‘์€ ๊ฐ’์„ ๋น„๊ต ํ›„ ์ž๋ฆฌ๋ฅผ ๊ตํ™˜ํ•ด์ฃผ๋Š”๋ฐ, ์ด๋•Œ ์˜ค๋ฅธ์ชฝ์—๋Š” ๋” ํฐ ๊ฐ’์ด ๊ฐ€๊ณ  ๋น„๊ต์‹œ์ ์— ์˜ค๋ฅธ์ชฝ ๊ฐ’์ด ๋” ํฌ๋‹ค๋ฉด ๊ตํ™˜์„ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ์— ๋‹ค์Œ ์š”์†Œ์™€ ๋น„๊ต๋ฅผ ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•จ.

(3) ๋ฒ„๋ธ” ์ •๋ ฌ - ์„ฑ๋Šฅ๊ณผ ํŠน์ง•

  • ๋ฐ”๊นฅ์ชฝ ๋ฐ˜๋ณต๋ฌธ(i๋ฃจํ”„): ์ •๋ ฌ์„ ์ด ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ• ์ง€ ๊ฒฐ์ •ํ•จ.
  • ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ(j๋ฃจํ”„): ์‹ค์ œ๋กœ ์ธ์ ‘ํ•œ ๋‘ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•˜๊ณ  ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์ž„.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„: 2์ค‘ for๋ฌธ ํ™œ์šฉ -> ์ž…๋ ฅ ๋ฐ์ดํ„ฐ n ์ฆ๊ฐ€์œจ ์ตœ๊ณ ์ฐจํ•ญ n^2 = O(n^2) ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง.

  • ์•ˆ์ •์  ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์ธ์ ‘ํ•œ ๋‘ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ์—๋Š” ์œ„์น˜ ๊ตํ™˜์„ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์•ˆ์ •์  ์ •๋ ฌ์— ์†ํ•จ.
  • ์ œ์ž๋ฆฌ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์ž…๋ ฅ ๋ฐฐ์—ด A[] ์ด์™ธ์— ์ƒ์ˆ˜ ๊ฐœ์˜ ์ €์žฅ ๊ณต๊ฐ„๋งŒ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ œ์ž๋ฆฌ ์ •๋ ฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ์„ ํƒ ์ •๋ ฌ๋ณด๋‹ค ๋น„ํšจ์œจ์ : ์„ ํƒ ์ •๋ ฌ์€ ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ํ›‘์œผ๋ฉฐ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์ธ๋ฑ์Šค์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด ๋‘” ์ƒํƒœ๋กœ ๋ฐ˜๋ณต๋ฌธ ํ•œ ์‚ฌ์ดํด์„ ๋Œ๊ณ  ๋‚œ ๋’ค ๋งˆ์ง€๋ง‰์— ๋ฐฐ์—ด์˜ ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์™€ ์ตœ์†Œ๊ฐ’ ์ธ๋ฑ์Šค ์œ„์น˜ ์š”์†Œ์™€ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์‚ฌ์ดํด์— ๋”ฑ ํ•œ ๋ฒˆ ์œ„์น˜ ๊ตํ™˜์ด ์ผ์–ด๋‚จ.
  • ํ•˜์ง€๋งŒ, ๊ทธ์— ๋น„ํ•ด ๋ฒ„๋ธ” ์ •๋ ฌ์€ ํ•œ ์‚ฌ์ดํด ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์†Œ๊ฐ„ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ๋งŽ์ด ๋ฐœ์ƒํ•จ.

(4) ๋ฒ„๋ธ” ์ •๋ ฌ - ๊ฐœ์„ ๋œ ๋ฒ„๋ธ” ์ •๋ ฌ

  • ์ฒ˜๋ฆฌ ๋‹จ๊ณ„์˜ ์ˆ˜: ๊ธฐ์กด ๋ฒ„๋ธ” ์ •๋ ฌ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ๋ชจ๋‘ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ์—๋„ ๋ฐ˜๋ณต๋ฌธ ํšŸ์ˆ˜์— ๋งž๊ฒŒ ์ˆ˜ํ–‰์ด ๋˜๋‹ค ๋ณด๋‹ˆ ๋น„ํšจ์œจ์ ์ž„.
  • ์ธ์ ‘ํ•œ ๋‘ ๋ฐ์ดํ„ฐ์˜ ๋น„๊ต ํšŸ์ˆ˜: ๊ธฐ์กด ๋ฒ„๋ธ” ์ •๋ ฌ์˜ ๊ฒฝ์šฐ ์ธ์ ‘ํ•œ ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต๋ฌธ ํšŸ์ˆ˜์— ๋งž๊ฒŒ ๋น„๊ต๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ, ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด๋„ ๋ชจ๋“  ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ ์ž„.
  •  **์ด๋Ÿฌํ•œ ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์กด์žฌํ•จ. **

  • (n - 1) - i: ๋ฐ˜๋ณต ํšŸ์ˆ˜์— - i ๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š”, ํ•œ ๋ฐ”ํ€ด ๋Œ ๋•Œ๋งˆ๋‹ค ๋งจ ๋’ค์˜ i๊ฐœ๋Š” ์ด๋ฏธ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ ฌ์ด ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ ๊ตณ์ด ๋˜ ๋น„๊ตํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ๊ณ„๋ณ„ ๋ฐ˜๋ณต๋งˆ๋‹ค i ๋งŒํผ ์ค„๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž„.
  • Sorted = TRUE: TRUE ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ฃผ๋ฉฐ, ์ž๋ฆฌ๋ฐ”๊ฟˆ์ด ๋ฐœ์ƒํ•ด FALSE์ธ ์ƒํƒœ๋กœ๋งŒ ๋ˆ๋‹ค๋ฉด ์ด์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž„.
  • Sorted = FALSE: ๋ฒ„๋ธ” ์ •๋ ฌ ๋ฐ์ดํ„ฐ๊ฐ„์˜ ๋น„๊ต ์ค‘์— ์ž๋ฆฌ ๋ฐ”๊ฟˆ์ด ์ผ์–ด๋‚˜๋ฉด Sorted ์ƒํƒœ๋ฅผ FALSE(๋ฏธ์ •๋ ฌ ์ƒํƒœ)๋กœ ๋ฐ”๊ฟˆ.
  • if (Sorted == TRUE) break: ๋ฃจํ”„๋ฅผ ๋‹ค ๋Œ์•˜๋Š”๋ฐ ์ž๋ฆฌ๊ฐ€ ๋‹จ ํ•œ ๋ฒˆ๋„ ์•ˆ๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด ๊ทธ๊ฑด ์ด๋ฏธ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ ฌ์ด ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, Sorted ์—๋Š” TRUE๊ฐ€ ๋“  ์ƒํƒœ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ. ( ๋” ์ด์ƒ ๋ฐ˜๋ณต์„ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ์— break ๋จ. )

  • ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n^2) ์ด์ง€๋งŒ, ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์ง.
  • ์‰ฝ๊ฒŒ ๋งํ•ด, ๋ฐ์ดํ„ฐ๊ฐ€ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ ๋ชจ๋“  ๋น„๊ต๋ฅผ ๋‹ค ํ•˜๊ณ  ๋‚œ ๋’ค ์ข…๋ฃŒ๊ฐ€ ๋˜์ง€๋งŒ, ์›ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ด๋ฏธ ์ •๋ ฌ์ด ๋œ ๊ฒฝ์šฐ์—๋Š” ๊ฐœ์„ ๋œ ๋ฒ„๋ธ” ์ •๋ ฌ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐ˜๋ณต์ด ๋ฐ”๋กœ ์ข…๋ฃŒ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ ์ด๋•Œ ์ตœ์„ ์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„ O(n) ์ด ๋  ์ˆ˜ ์žˆ์Œ.

โœ… 4. ์‚ฝ์ž… ์ •๋ ฌ

(1) ์‚ฝ์ž… ์ •๋ ฌ ์ด๋ž€?

  • ์‚ฝ์ž… ์ •๋ ฌ: ์ž…๋ ฅ ๋ฐฐ์—ด์„ ์ •๋ ฌ ๋ถ€๋ถ„๊ณผ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฝ‘์•„์„œ ์ž…๋ ฅ ๋ฐฐ์—ด์— ์‚ฝ์ž…ํ•จ.

  • (1) ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” ์ •๋ ฌ ๋ถ€๋ถ„์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  • (2) ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ์™ผ์ชฝ ์ •๋ ฌ ๋ถ€๋ถ„๊ณผ ๋น„๊ต ํ›„ ์‚ฝ์ž… ( ํ˜„์žฌ๋Š” 5๋ฐ–์— ์—†์œผ๋‹ˆ 5์™€ ๋น„๊ต ํ›„ ์ž‘์œผ๋‹ˆ ์•ž์œผ๋กœ 3 ์‚ฝ์ž… )
  • (3) ๋‹ค์Œ ๋น„์ •๋ ฌ ๋ถ€๋ถ„ ๋งจ ์•ž 8์„ ์ •๋ ฌ ๋ถ€๋ถ„์ธ 3, 5๋ฅผ ๋น„๊ต ํ•˜๋Š”๋ฐ ๋‘˜ ๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ž๋ฆฌ์— ์žˆ์Œ.
  • (4) ํ˜„์žฌ ์ƒํƒœ๋Š” ์ •๋ ฌ ๋ถ€๋ถ„(3, 5, 8) / ๋น„์ •๋ ฌ ๋ถ€๋ถ„(1, 2, 7) ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ์ •๋ ฌ ๋ฐฉ์‹์ž„.

  • val = A[i]: ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ val ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ์—ฐ์‚ฐ์ž„.
  • for(j=i; j > 0 && A[j-1] > val; j--): i ์˜ ๊ฐ’์€ ํ˜„์žฌ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— A[j-1] ์„ ํ†ตํ•ด์„œ ๋ฏธ์ •๋ ฌ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์˜ ๊ฐ’์„ ๋น„๊ต ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋˜ํ•œ, ๋งŒ์•ฝ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค ๋ถ€๋ถ„์ด ๋” ํฌ๋‹ค๋ฉด j-- ๋ฅผ ํ†ตํ•ด ๊ทธ ์ด์ „ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„ ์ธ๋ฑ์Šค๋ฅผ ๋น„๊ต ํ•  ์ˆ˜ ์žˆ์Œ.
  • A[j] = A[j-1]: ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋กœ ์ด๋™ ์ฆ‰, ๋ฎ์–ด์”Œ์›€. ( val ์— ์ €์žฅ๋˜์–ด์žˆ์Œ )
  • A[j] = val: ๊ธฐ์กด์— ๋ฏธ์ •๋ ฌ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ val ์— ์ €์žฅ์„ ํ•ด๋‘์—ˆ์œผ๋ฏ€๋กœ val ๊ฐ’์„ A[j] ์— ์‚ฝ์ž… ( ์ฆ‰, ๊ตํ™˜ ๋œ ๊ฒƒ์ด ๋จ. )
  • ** ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด ์‚ฝ์ž… ์ •๋ ฌ์ž„. **

(2) ์‚ฝ์ž… ์ •๋ ฌ - ์˜ˆ์‹œ

  • ์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋™์ž‘์‹œํ‚ค๋ฉด ์œ„์™€ ๊ฐ™์ด ๊ทธ๋ฆผ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•จ.
  • 1๋‹จ๊ณ„: ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ธ 30์„ ์ •๋ ฌ๋ถ€๋ถ„์œผ๋กœ ์ •ํ•ด๋†“๊ณ , ๋ฏธ์ •๋ ฌ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ 20๊ณผ ๋น„๊ต ํ›„ ์‚ฝ์ž… ์ •๋ ฌ
  • 2๋‹จ๊ณ„: ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„ ์ฒซ ๋ฒˆ์งธ 40๊ณผ ์ •๋ ฌ ๋ถ€๋ถ„ 30๊ณผ ๋น„๊ต ํ›„ 30์ด ์ž‘์œผ๋ฏ€๋กœ, ์ œ์ž๋ฆฌ์— ์žˆ๊ฒŒ ๋จ.
  • 3๋‹จ๊ณ„: 35์™€ 40์„ ๋น„๊ต 40์ด ๋” ํฌ๊ธฐ ๋•Œ๋ฌธ์— 40์ด 35์˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ฒŒ ๋˜๋ฉฐ, 35๋Š” ๋˜ 30๊ณผ ๋น„๊ต๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉฐ, 30๋ณด๋‹ค๋Š” ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ 40์ด ์žˆ๋˜ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ์›๋ฆฌ์ž„.
  • ** ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ด๋™์„ ํ•ด์„œ ์‚ฝ์ž…์ด ๋˜๋ฉฐ, ์‚ฝ์ž…์ด ๋˜์–ด ๋ฎ์–ด์”Œ์›Œ์ง„ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ์กด์˜ ๋ณ€์ˆ˜์— ์ €์žฅ์„ ํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์ •๋ ฌ ๋ถ€๋ถ„๊ณผ ๋น„๊ต๋ฅผ ๋‹ค ๋๋งˆ์น˜๋ฉด ํ•ด๋‹น ์ž๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์‚ฝ์ž…๋˜์–ด ์ •๋ ฌ๋˜๋Š” ๋ฐฉ์‹์ž„. **

(3) ์‚ฝ์ž… ์ •๋ ฌ - ์„ฑ๋Šฅ๊ณผ ํŠน์ง•

  • ์‹œ๊ฐ„๋ณต์žก๋„: O(n^2)
  • 2์ค‘ for ๋ฌธ: 2๋ฒˆ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋Š”๋ฐ ๋ฃจํ”„ j์˜ ๊ฒฝ์šฐ๋„ ์ตœ๋Œ€ n-1 ๋ฒˆ๊นŒ์ง€ ๋น„๊ต๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ. ์ฆ‰ O(n^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง.
  • ๋˜ํ•œ, ๋ถ€๋“ฑํ˜ธ๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์ด ์•„๋‹Œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ๋„ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•จ.

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

  • ์—ญ์ˆœ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ(์ตœ์•…) O(n^2), ์ œ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ(์ตœ์„ ) O(n) ์ด ๋œ๋‹ค.

โœ… 5. ์…ธ ์ •๋ ฌ

(1) ์…ธ ์ •๋ ฌ ์ด๋ž€?

  • ์…ธ ์ •๋ ฌ: ์‚ฝ์ž… ์ •๋ ฌ์˜ ์žฅ์ ์€ ์‚ด๋ฆฌ๊ณ  ๋‹จ์ ์€ ๋ณด์™„ํ•œ ๋ฐฉ์‹์˜ ์ •๋ ฌ์ž„.
  • ์‚ฝ์ž… ์ •๋ ฌ ๋‹จ์ : ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ ๋ถ€๋ถ„์— ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‘ ๋ฐ์ดํ„ฐ์˜ ๋Œ€์†Œ ๋น„๊ต๋ฅผ ํ†ตํ•ด์„œ ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๋Š”๋ฐ ์ด๋•Œ ์ œ์ž๋ฆฌ๊ฐ€ ๋ฉ€๋”๋ผ๋„ ํ•œ ์ž๋ฆฌ์”ฉ๋งŒ ์ด๋™ํ•ด์„œ ์ฐพ์•„๊ฐ€์•ผํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ.
์‚ฝ์ž… ์ •๋ ฌ์˜ ๋ฌธ์ œ
- [9,1,2,3,4,5,6,7,8]

(์‚ฝ์ž…์ •๋ ฌ ๊ณผ์ •)
- 1 → 9 ์•ž
- 2 → 9 ์•ž
- 3 → 9 ์•ž
...

- 9๊ฐ€ ๋’ค๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด: 9 → 8์นธ ์ด๋™
  • ์ฆ‰, ์ด์™€ ๊ฐ™์ด ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๊ฐ’ ์ด๋™์ด ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋ฉฐ, ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2) ์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋‹จ์ ์ด ์žˆ์Œ.
  • ์…ธ ์ •๋ ฌ: ์ด๋Ÿฌํ•œ ์‚ฝ์ž… ์ •๋ ฌ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ณ ์ž ์ž…๋ ฅ ๋ฐฐ์—ด์„ ๋ถ€๋ถ„ ๋ฐฐ์—ด๋กœ ๋‚˜๋ˆ„์–ด ๋ถ€๋ถ„ ๋ฐฐ์—ด๊ฐ„ ๋น„๊ต ๋ฐ ๊ตํ™˜(์‚ฝ์ž… ์ •๋ ฌ)์„ ํ†ตํ•ด์„œ ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š” ์›์†Œ๋„ ํ•œ ๋ฒˆ์— ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด ์‚ฝ์ž… ์ •๋ ฌ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•จ.
  •  ** ๋˜ํ•œ, ๋ถ€๋ถ„๋ฐฐ์—ด์€ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด์„œ ๋ถ€๋ถ„๋ฐฐ์—ด์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋…ผ๋ฆฌ์ ์ธ ์กด์žฌ์ด๋‹ค. **
<< ์…ธ ์ •๋ ฌ >>
[16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]: n = 16

( 1๋‹จ๊ณ„ ๋น„๊ต: gap = n(16) / 2 = 8 )
- index ๊ฐ„๊ฒฉ: gap(8)์ธ ๊ทธ๋ฃน ์ƒ์„ฑ = 8 group
- [16,1,2,3,4,5,6,7],[8,9,10,11,12,13,14,15] => 16, 9 ๋น„๊ต ๊ตํ™˜ ...
- Group 1:[16, 8], Group 2:[1, 9] ... Group 8:[7, 15] ( ์ด 8๊ฐœ ๊ทธ๋ฃน )
- ์ด 8๊ฐœ์˜ ๊ฐ ๊ทธ๋ฃน์—์„œ ์‚ฝ์ž… ์ •๋ ฌ ์ˆ˜ํ–‰
- 1๋‹จ๊ณ„ ๊ฒฐ๊ณผ: [8,1,2,3,4,5,6,7,16,9,10,11,12,13,14,15]

( 2๋‹จ๊ณ„ ๋น„๊ต: gap = 8 / 2 = 4 )
- index ๊ฐ„๊ฒฉ: gap(4)์ธ ๊ทธ๋ฃน ์ƒ์„ฑ = 4 group
- Group 1: [8,4,16,12] → [4,8,12,16]
- Group 2: [1,5,9,13] → ๋ณ€ํ™” ์—†์Œ
- Group 3: [2,6,10,14] → ๋ณ€ํ™” ์—†์Œ
- Group 4: [3,7,11,15] → ๋ณ€ํ™” ์—†์Œ
- 2๋‹จ๊ณ„ ๊ฒฐ๊ณผ: [4,1,2,3,8,5,6,7,12,9,10,11,16,13,14,15]

( 3๋‹จ๊ณ„ ๋น„๊ต: gap = 4 / 2 = 2 )
- index ๊ฐ„๊ฒฉ: gap(2)์ธ ๊ทธ๋ฃน ์ƒ์„ฑ = 2 group
- Group 1: [4,2,8,6,12,10,16,14] → [2,4,6,8,10,12,14,16]
- Group 2: [1,3,5,7,9,11,13,15] → [1,3,5,7,9,11,13,15]
- 3๋‹จ๊ณ„ ๊ฒฐ๊ณผ: [2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15]

( 4๋‹จ๊ณ„ ๋น„๊ต: gap = 2 / 2 = 1 )
- ์ผ๋ฐ˜ ์‚ฝ์ž… ์ •๋ ฌ ์ˆ˜ํ–‰ -> ์ด์ „ 1~3๋‹จ๊ณ„๋Š” ๊ฐ„๊ฒฉ(gap)์ด ์žˆ๋Š” ์‚ฝ์ž… ์ •๋ ฌ์ž„.
- 4๋‹จ๊ณ„ ๊ฒฐ๊ณผ: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
  • ๊ฒฐ๋ก : ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ„๊ฒฉ(gap)์ด ์žˆ๋Š” ์‚ฝ์ž… ์ •๋ ฌ์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰ gap = 1 ๋‹จ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜ ์‚ฝ์ž… ์ •๋ ฌ์„ ์ง„ํ–‰ํ•œ๋‹ค. ๋˜ํ•œ, gap = 1 ๋‹จ๊ณ„์—์„œ ์‚ฝ์ž… ์ •๋ ฌ์„ ํ•˜๋ฉด ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋Š” ๋ฌด์กฐ๊ฑด ์ •๋ ฌ์ด ๋จ.
  • ๋˜ํ•œ, ๋ถ€๋ถ„๋ฐฐ์—ด์˜ ๊ฐ ๊ฑฐ๋ฆฌ๊ฐ„ ๋น„๊ต๋ฅผ ํ†ตํ•ด์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๊ฐ’๊ฐ„์˜ ๋น„๊ต๋ฅผ ํ•จ.

(2) ์…ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • D: ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜(๊ฐ„๊ฒฉ์˜ ํฌ๊ธฐ)๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋‚˜๋ˆ„๊ธฐ 2๋ฅผ ํ•˜๋ฉด์„œ ๊ฐ„๊ฒฉ์„ ์ ์ฐจ ์ค„์ด๋Š” ๋ฐ˜๋ณต๋ฌธ์ž„.
  • 2์ค‘ for๋ฌธ: ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ ๋Œ๋ฆฌ๋ฉด์„œ ๋ถ€๋ถ„๋ฐฐ์—ด์— ๋Œ€ํ•œ ์‚ฝ์ž… ์ •๋ ฌ์„ ์ง„ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•จ.
def shellSort(A):
    n = len(A)
    D = n // 2 # ๋ฒ„๋ฆผ ๋‚˜๋ˆ—์…ˆ
    while D >= 1:
        for i in range(D, n): # D ~ n ๊นŒ์ง€ ๋ฐ˜๋ณต
            val = A[i] # 8๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๋„ฃ์–ด์ค„๋“ฏ.
            j = i

            while j >= D and A[j - D] > val:
                A[j] = A[j - D]
                j -= D # 8 - 8 = 0

            A[j] = val
        D //= 2
            
A = [16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
shellSort(A)
print("์ •๋ ฌ ๊ฒฐ๊ณผ:", A)
  • ์…ธ ์ •๋ ฌ์„ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•จ.

(3) ์…ธ ์ •๋ ฌ ์˜ˆ์‹œ

  • 2๋กœ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„์ธ ๊ฑฐ๋ฆฌ๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋จ.
  • ์ดํ›„, ๋‚ด๋ถ€ for ๋ฌธ์„ ํ†ตํ•ด์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„๊ต ํ›„ ๋ถ€๋ถ„ ์ •๋ ฌ์„ ์ง„ํ–‰ํ•จ.

(4) ์…ธ ์ •๋ ฌ ํŠน์ง•

  • ์–ด๋–ค ์ˆœ์—ด์„ ์‚ฌ์šฉํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์ง€๋ฉฐ, ๊ฐ€์žฅ ์ข‹์€ ๊ฐ„๊ฒฉ์„ ์ฐพ๋Š” ๊ฒƒ์€ ๋ฏธํ•ด๊ฒฐ ๊ณผ์ œ์ž„.
  • ์‰ฝ๊ฒŒ ๋งํ•ด, ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐฐ์—ด์€ ์ˆ˜ํ•™์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์ˆœ์—ด๋กœ ๋ณด๋ฉฐ, ํ•ด๋‹น ์ˆœ์—ด์˜ ์„ฑ๋Šฅ ์ฒ™๋„๋Š” ์—ญ์ „์˜ ๊ฐœ์ˆ˜๋กœ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ์—ญ์ „์€ [3, 1, 2] ๋ผ๋Š” ์ˆœ์—ด์—์„œ (3, 1) ๊ณผ (3, 2)๋Š” ์ˆœ์„œ๊ฐ€ ๋’ค์ง‘ํ˜€ ์žˆ์œผ๋ฏ€๋กœ ์—ญ์ „์œผ๋กœ ๋ณด๋Š” ๊ฒƒ์ด๋‹ค.
  • ** ์ผ๋ฐ˜์ ์ธ ์‚ฝ์ž… ์ •๋ ฌ์€ ์ธ์ ‘ํ•œ ๊ฐ’๋ผ๋ฆฌ๋งŒ ๋น„๊ตํ•ด์„œ ์ด ์—ญ์ „์„ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ๋งŒ ์ œ๊ฑฐ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋А๋ฆผ **
  • ** ํ•˜์ง€๋งŒ, ์…ธ ์ •๋ ฌ์€ D๋งŒํผ ๋–จ์–ด์ง„ ๊ฐ’๋“ค์„ ๋น„๊ตํ•จ์œผ๋กœ์จ, ํ•œ ๋ฒˆ์˜ ์ด๋™์œผ๋กœ ์ˆ˜๋งŽ์€ ์—ญ์ „ ๊ด€๊ณ„๋ฅผ ๋™์‹œ์— ํ•ด๊ฒฐ์„ ํ•จ. **
  • ** ์ฆ‰, ์ˆœ์—ด์˜ ์ƒํƒœ๋ฅผ ์•„์ฃผ ๋น ๋ฅด๊ฒŒ ์ •๋ ฌ์— ๊ฐ€๊นŒ์šด ์ƒํƒœ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์ž„. **
  • ์‹œ๊ฐ„๋ณต์žก๋„: ์ตœ์„  O(nlogn) / ์ตœ์•… O(n^2)

  • ์ œ์ž๋ฆฌ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์…ธ ์ •๋ ฌ์€ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ œ์ž๋ฆฌ์—์„œ ์ด๋™์„ ํ•จ.
  • ์•ˆ์ •์ ์ด์ง€ ์•Š์€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์‚ฝ์ž…์ •๋ ฌ์˜ ๊ฒฝ์šฐ ํ•˜๋‚˜์”ฉ ๋น„๊ต๋ฅผ ํ•˜๋ฉด์„œ ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ์ˆ˜๋ผ๋ฆฌ์˜ ์œ„์น˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š์ง€๋งŒ, ์…ธ ์ •๋ ฌ์€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๊ฐ’๊ณผ ๋น„๊ต๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๊ฐ’๋ผ๋ฆฌ ์ˆœ์„œ๊ฐ€ ๋’ค์„ž์ผ ์ˆ˜ ์žˆ์Œ.

'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต > ๐Ÿงฌ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์•Œ๊ณ ๋ฆฌ์ฆ˜] 6๊ฐ• - ํƒ์ƒ‰(1)  (0) 2026.04.08
[์•Œ๊ณ ๋ฆฌ์ฆ˜] 5๊ฐ• - ์ •๋ ฌ(3)  (0) 2026.03.25
[์•Œ๊ณ ๋ฆฌ์ฆ˜] 4๊ฐ• - ์ •๋ ฌ(2)  (0) 2026.03.24
[์•Œ๊ณ ๋ฆฌ์ฆ˜] 2๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ๊ฐœ(2)  (0) 2026.02.20
[์•Œ๊ณ ๋ฆฌ์ฆ˜] 1๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ๊ฐœ(1)  (0) 2026.02.18
'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿงฌ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] 5๊ฐ• - ์ •๋ ฌ(3)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] 4๊ฐ• - ์ •๋ ฌ(2)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] 2๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ๊ฐœ(2)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] 1๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ๊ฐœ(1)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (230)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (84)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก  (15)
        • ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ (14)
        • ๐Ÿงฌ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
        • โš™๏ธ์šด์˜์ฒด์ œ (12)
        • ๐Ÿ•ธ๏ธ์ด์‚ฐ์ˆ˜ํ•™ (10)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
      • ๐Ÿ› ๏ธBackend (71)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (5)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โš™๏ธC (12)
        • โšกPython (15)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (64)
      • ์ •๋ณด (2)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    spring
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์ž๋ฐ”
    ์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    Python
    ๊ทธ๋ž˜ํ”„
    C์–ธ์–ด
    ๋ฐฉํ†ต๋Œ€
    Java
    ๋ฐฐ์—ด
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ํ•จ์ˆ˜
    ๋ฐฉ์†ก๋Œ€
    ์ด์‚ฐ์ˆ˜ํ•™
    ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ
    ํŒŒ์ด์ฌ
    ์šด์˜์ฒด์ œ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[์•Œ๊ณ ๋ฆฌ์ฆ˜] 3๊ฐ• - ์ •๋ ฌ(1)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”