Skip to content

Latest commit

ย 

History

History
340 lines (236 loc) ยท 9.84 KB

Sort.md

File metadata and controls

340 lines (236 loc) ยท 9.84 KB

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

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ธฐ์ค€์— ๋งž๊ฒŒ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜


์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜(๊ธฐ๋ณธ 7๊ฐ€์ง€)

์„ ํƒ ์ •๋ ฌ(Selection Sort)

์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๊ณ  ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ์•ž์˜ ๊ฐ’๊ณผ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ๋ฐฐ์—ด์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์•„ ์„ ํƒํ•˜์—ฌ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒ ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

  • ์žฅ์ 
    • ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฐ€ํ•œ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋น„๊ตํ•˜๋Š” ํšŸ์ˆ˜์— ๋น„ํ•ด ๊ตํ™˜ํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ์ ๋‹ค.
  • ๋‹จ์ 
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.
    • ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ํšจ์œจ์ด ์ข‹์ง€ ์•Š๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํ‰๊ท : O(n^2)
    • ์ตœ์„ : O(n^2)
    • ์ตœ์•…: O(n^2)

๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort)

์„œ๋กœ ์ธ์ ‘ํ•œ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์•ž์˜ ๊ฐ’์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๋„๋ก ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ์ •๋ ฌ ๋ฐฉ์‹์ด ๋งˆ์น˜ ๋ฌผ์†์—์„œ ์˜ฌ๋ผ์˜ค๋Š” ๋ฌผ๋ฐฉ์šธ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๋ธ” ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

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

์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort)

ํ˜„์žฌ ์œ„์น˜์˜ ์›์†Œ๋ฅผ ์ •๋ ฌ๋œ ์ƒํƒœ์˜ ์•ž๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•˜์—ฌ ์ ์ ˆํ•œ ์œ„์น˜์— ์‚ฝ์ž…ํ•˜๋ฉด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ์›์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ์ ์ ˆํ•œ ์œ„์น˜๋กœ ์‚ฝ์ž…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฝ์ž… ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

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

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

๋ฐฐ์—ด์„ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์น˜๋ฉด์„œ ์ „์ฒด๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ์ชผ๊ฐ  ํ›„ ํ•ฉ๋ณ‘ํ•˜๋ฉด์„œ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ๋ณ‘ ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

  • ์žฅ์ 
    • ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.
    • ์•ˆ์ •์ ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ธ๋‹ค.
  • ๋‹จ์ 
    • ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํ‰๊ท : O(nlogn)
    • ์ตœ์„ : O(nlogn)
    • ์ตœ์•…: O(nlogn)

ํ€ต ์ •๋ ฌ(Quick Sort)

๋ฐฐ์—ด์—์„œ ํ•˜๋‚˜์˜ ํ”ผ๋ฒ—(pivot)์„ ์ •ํ•˜์—ฌ ์ด ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ๊ฐ’์€ ์™ผ์ชฝ, ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜์‹œํ‚จ ํ›„, ํ”ผ๋ฒ— ์–‘์ชฝ ๋ฐฐ์—ด์—์„œ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ํ‰๊ท ์ ์œผ๋กœ ๋น ๋ฅธ ์ˆ˜ํ–‰ ์†๋„๋กœ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ€ต ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

  • ์žฅ์ 
    • ํ‰๊ท ์ ์œผ๋กœ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค.
  • ๋‹จ์ 
    • ํ”ผ๋ฒ—์„ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š” ์ง€์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์˜ ์ฐจ์ด๊ฐ€ ์‹ฌํ•˜๋‹ค.
    • ์•ˆ์ •์„ฑ์ด ์ข‹์ง€ ์•Š๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํ‰๊ท : O(nlogn)
    • ์ตœ์„ : O(nlogn)
    • ์ตœ์•…: O(n^2)

ํž™ ์ •๋ ฌ(Heap Sort)

์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์ธ ํž™์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ root ๋…ธ๋“œ๋กœ ์ด๋™์‹œํ‚ค๋ฉฐ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด ๋ฐฐ์—ด์˜ ๋’ค๋ถ€ํ„ฐ ์ €์žฅํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์ธ ํž™(Heap)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํž™ ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

  • ์žฅ์ 
    • ํ•ญ์ƒ ๊ฐ™์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ์ค€์ˆ˜ํ•˜๋‹ค.
  • ๋‹จ์ 
    • ๊ฐ™์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„๊ตํ•˜๋ฉด ๋Š๋ฆฐ ํŽธ์ด๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํ‰๊ท : O(nlogn)
    • ์ตœ์„ : O(nlogn)
    • ์ตœ์•…: O(nlogn)

์‰˜ ์ •๋ ฌ(Shell Sort)

์ผ์ • ๊ฐ„๊ฒฉ(gap)์œผ๋กœ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ ๋ฐฐ์—ด๋ผ๋ฆฌ ์‚ฝ์ž… ์ •๋ ฌํ•œ ํ›„, ๋” ์ ์€ ๊ฐœ์ˆ˜์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ ์•ž ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
โ†’ ์‚ฝ์ž…์ •๋ ฌ์„ ๋ณด์™„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Donald L. Shell์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด ์ œ์•ˆํ•˜์—ฌ ์‰˜ ์ •๋ ฌ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ

์•Œ๊ณ ๋ฆฌ์ฆ˜(ADL)

์ˆ˜ํ–‰ ๊ณผ์ •(png)

์ˆ˜ํ–‰ ๊ณผ์ •(gif)

  • ์žฅ์ 
    • ์‚ฝ์ž… ์ •๋ ฌ์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.
  • ๋‹จ์ 
    • ์„ค์ •ํ•œ ๊ฐ„๊ฒฉ(gap)์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์˜ ์ฐจ์ด๊ฐ€ ์‹ฌํ•˜๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํ‰๊ท : O(n^1.3~1.5)
    • ์ตœ์„ : O(n)
    • ์ตœ์•…: O(n^2)

์ •๋ ฌ ์†๋„ ํ•œ ๋ฒˆ์— ๋ณด๊ธฐ(gif)

๋ฉด์ ‘ ๋Œ€๋น„

  • ?? ์ •๋ ฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ๋ณด์„ธ์š”.