๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–‹๏ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜,์ž๋ฃŒ๊ตฌ์กฐ

[์ •๋ ฌ] ๊ณ ๊ธ‰ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋ณ‘ํ•ฉ/ํ€ต/ํž™/์…€)

by OR15A 2023. 11. 21.

๋ณ‘ํ•ฉ ์ •๋ ฌ (Merge Sort)

  • ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•

์ž‘๋™ ์›๋ฆฌ:

  • ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
  • ๊ฐ ๋ถ€๋ถ„์„ ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ •๋ ฌ๋œ ๋‘ ๋ถ€๋ถ„์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ์™„์ „ํ•œ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„:

  • ์ตœ์„ , ํ‰๊ท , ์ตœ์•… ๋ชจ๋‘

๊ณต๊ฐ„ ๋ณต์žก๋„:

  • (์ถ”๊ฐ€ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ)

์•ฝ์ :

  • ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค๋‚˜ ์ปฌ๋ ‰์…˜:

  • ๋ฐฐ์—ด(int[], Integer[], String[] ๋“ฑ), ArrayList, LinkedList

 

 

 

ํ€ต ์ •๋ ฌ (Quick Sort)

  • ํ€ต ์ •๋ ฌ๋„ ๋ถ„ํ•  ์ •๋ณต ์ „๋žต์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๋ณ‘ํ•ฉ ์ •๋ ฌ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™

์ž‘๋™ ์›๋ฆฌ:

  • ํ”ผ๋ฒ—(pivot) ์š”์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค: ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์š”์†Œ์™€ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ์š”์†Œ.
  • ์ด ๊ณผ์ •์„ ์žฌ๊ท€์ ์œผ๋กœ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„:

  • ํ‰๊ท :
  • ์ตœ์•…: (ํ”ผ๋ฒ— ์„ ํƒ์ด ์ข‹์ง€ ์•Š์„ ๊ฒฝ์šฐ)

๊ณต๊ฐ„ ๋ณต์žก๋„:

  • (์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ์ธํ•œ ์Šคํƒ ๊ณต๊ฐ„)

์•ฝ์ :

  • ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ )์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค๋‚˜ ์ปฌ๋ ‰์…˜:

  • ๋ฐฐ์—ด, ArrayList

 

 

 

ํž™ ์ •๋ ฌ (Heap Sort)

  • ํž™ ์ •๋ ฌ์€ ์ด์ง„ ํž™(binary heap) ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌ์„ ์ˆ˜ํ–‰

์ž‘๋™ ์›๋ฆฌ:

  • ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ตœ๋Œ€ ํž™(max heap)์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ํž™์˜ ๋ฃจํŠธ(์ตœ๋Œ€ ๊ฐ’)๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ๋๊ณผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ํž™์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ , ํž™ ์†์„ฑ์„ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„:

  • ํ‰๊ท  ๋ฐ ์ตœ์•…:

๊ณต๊ฐ„ ๋ณต์žก๋„:

  • (์ œ์ž๋ฆฌ ์ •๋ ฌ)

์•ฝ์ :

  • ์•ˆ์ •์„ฑ์ด ์—†๊ณ , ํ€ต ์ •๋ ฌ์ด๋‚˜ ๋ณ‘ํ•ฉ ์ •๋ ฌ์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค๋‚˜ ์ปฌ๋ ‰์…˜:

  • ๋ฐฐ์—ด, PriorityQueue

 

 

 

์…ธ ์ •๋ ฌ (Shell Sort)

  • ์…ธ ์ •๋ ฌ์€ ์‚ฝ์ž… ์ •๋ ฌ์˜ ๋ณ€ํ˜•์œผ๋กœ, ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋–จ์–ด์ง„ ์š”์†Œ๋“ค์„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹

์ž‘๋™ ์›๋ฆฌ:

  • ๊ฐ„๊ฒฉ์„ ์ ์  ์ค„์—ฌ๊ฐ€๋ฉฐ, ๊ฐ ๊ฐ„๊ฒฉ์— ์žˆ๋Š” ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ์‚ฝ์ž… ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜ ์‚ฝ์ž… ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„:

  • ํ‰๊ท : ๋˜๋Š”, ๊ฐ„๊ฒฉ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
  • ์ตœ์•…: ๊ฐ„๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„, ์ผ๋ฐ˜์ ์œผ๋กœ

๊ณต๊ฐ„ ๋ณต์žก๋„:

  • (์ œ์ž๋ฆฌ ์ •๋ ฌ)

์•ฝ์ :

  • ์ตœ์•…์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ๋งค์šฐ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค๋‚˜ ์ปฌ๋ ‰์…˜:

  • ๋ฐฐ์—ด, ArrayList

.

 

 

์ฐธ๊ณ ์ž๋ฃŒ : ใ€Œ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ with ์ž๋ฐ”ใ€