Skip to content

Files

Latest commit

 

History

History
191 lines (128 loc) ยท 12.8 KB

README-ko.md

File metadata and controls

191 lines (128 loc) ยท 12.8 KB

์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ž๋ฐ”

์ด ๊ฐœ๋ฐœ๋ธŒ๋Ÿฐ์น˜๋Š” ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ Java ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋กœ ์žฌ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ๋‹ค. ๊ธฐ์—ฌ๋„๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ง€์‚ฌ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ปจํŠธ๋ฆฌ๋ทฐ์…˜์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋ธŒ๋Ÿฐ์น˜๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ์ด์Šˆ๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

์ž๋ฐ”๋กœ ๊ตฌํ˜„๋œ ๋ชจ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค (๊ต์œก์šฉ)

์ด๊ฒƒ๋“ค์€ ๋‹จ์ง€ ์‹œ๋ฒ”์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. ํ‘œ์ค€ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ ๋” ๋‚˜์€ ๊ฒƒ๋“ค์ด ๊ตฌํ˜„๋˜์–ด์žˆ๋‹ค

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

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

alt text

From Wikipedia: ๋ฒ„๋ธ” ์†ŒํŠธ(sinking sor๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ์›€)๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณต์ ์ธ ๋‹จ๊ณ„๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ง์„ ๋น„๊ตํ•˜๋ฉฐ, ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ๊ทธ์ ‘ํ•œ ์•„์ดํ…œ๋“ค์„ ์Šค์™‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋” ์ด์ƒ ์Šค์™‘ํ•  ๊ฒƒ์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋ฐ˜๋ณต์ด ๋๋‚จ์Œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ •๋ ฌ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n^2)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n)
  • ํ‰๊ท  ์„ฑ๋Šฅ O(n^2)
View the algorithm in action

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

alt text

From Wikipedia: ์‚ฝ์ž… ์ •๋ ฌ์€ ์ตœ์ข… ์ •๋ ฌ๋œ ๋ฐฐ์—ด(๋˜๋Š” ๋ฆฌ์ŠคํŠธ)์„ ํ•œ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๊ตฌ์ถ•ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด๊ฒƒ์€ ํฐ ๋ฆฌ์ŠคํŠธ์—์„œ ๋” ๋‚˜์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ํ€ต ์†ŒํŠธ, ํž™ ์†ŒํŠธ, ๋˜๋Š” ๋จธ์ง€ ์†ŒํŠธ๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ข‹์€ ํšจ์œจ์„ ๊ฐ€์ง„๋‹ค. ๊ทธ๋ฆผ์—์„œ ๊ฐ ๋ง‰๋Œ€๋Š” ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ƒ๋‹จ๊ณผ ๋‘ ๋ฒˆ์งธ ์ƒ๋‹จ ๋ง‰๋Œ€์˜ ์ฒซ ๋ฒˆ์งธ ๊ต์ฐจ์ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ณด๋‹ค ๋” ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ง‰๋Œ€๋กœ ํ‘œ์‹œ๋˜๋Š” ์ด๋Ÿฌํ•œ ์š”์†Œ๋ฅผ ๊ตํ™˜ํ•œ ๊ฒƒ์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ๋ฐ˜๋ณตํ•˜๋ฉด ์‚ฝ์ž… ์ •๋ ฌ์ด ์™„๋ฃŒ๋œ๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n^2)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n)
  • ํ‰๊ท  O(n^2)
View the algorithm in action

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

alt text

From Wikipedia: ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ, ํ•ฉ๋ณ‘ ์ •๋ ฌ์€ ํšจ์œจ์ ์ธ, ๋ฒ”์šฉ์ ์ธ, ๋น„๊ต ๊ธฐ๋ฐ˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ตฌํ˜„์€ ์•ˆ์ •์ ์ธ ๋ถ„๋ฅ˜๋ฅผ ์ด๋ฃจ๋Š”๋ฐ, ์ด๊ฒƒ์€ ๊ตฌํ˜„์ด ์ •๋ ฌ๋œ ์ถœ๋ ฅ์— ๋™์ผํ•œ ์š”์†Œ์˜ ์ž…๋ ฅ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ํ•ฉ๋ณ‘ ์ •๋ ฌ์€ 1945๋…„์— John von Neumann์ด ๋ฐœ๋ช…ํ•œ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n log n) (์ผ๋ฐ˜์ )
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n log n)
  • ํ‰๊ท  O(n log n)
View the algorithm in action

Quick(ํ€ต ์ •๋ ฌ)

alt text

From Wikipedia: ํ€ต ์ •๋ ฌsometimes called partition-exchange sort)์€ ํšจ์œจ์ ์ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๋Š” ์ฒด๊ณ„์ ์ธ ๋ฐฉ๋ฒ• ์—ญํ™œ์„ ํ•œ๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n^2)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n log n) or O(n) with three-way partition
  • ํ‰๊ท  O(n log n)
View the algorithm in action

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

alt text

From Wikipedia: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋ ฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค : ์ฒซ ๋ถ€๋ถ„์€ ์•„์ดํ…œ๋“ค์ด ์ด๋ฏธ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •๋ ฌ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚จ์€ ๋ถ€๋ถ„์˜ ์•„์ดํ…œ๋“ค์€ ๋‚˜๋จธ์ง€ ํ•ญ๋ชฉ์„ ์ฐจ์ง€ํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์ด๋‹ค. ์ฒ˜์Œ์—๋Š” ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋Š” ๊ณต๋ฐฑ์ด๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ์ „๋ถ€์ด๋‹ค. ์˜ค๋ฅด์ฐจ์ˆœ(๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ€์žฅ ์ž‘์€ ์š”์†Œ๋ฅผ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฆฌ์ŠคํŠธ์—์„œ ์ฐพ๊ณ  ์ •๋ ฌ์ด ์•ˆ๋œ ๊ฐ€์žฅ ์™ผ์ชฝ(์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ) ๋ฆฌ์ŠคํŠธ์™€ ๋ฐ”๊พผ๋‹ค. ์ด๋ ‡๊ฒŒ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‚˜์•„๊ฐ„๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n^2)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n^2)
  • ํ‰๊ท  O(n^2)
View the algorithm in action

Shell(์‰˜ ์ •๋ ฌ)

alt text

From Wikipedia: ์‰˜ ์ •๋ ฌ์€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š” ํ•ญ๋ชฉ์˜ ๊ตํ™˜์„ ํ—ˆ์šฉํ•˜๋Š” ์‚ฝ์ž… ์ข…๋ฅ˜์˜ ์ผ๋ฐ˜ํ™”์ด๋‹ค. ๊ทธ ์•„์ด๋””์–ด๋Š” ๋ชจ๋“  n๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ •๋ ฌ๋œ ๋ชฉ๋ก์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์—ฌ ์–ด๋Š ๊ณณ์—์„œ๋“ ์ง€ ์‹œ์ž‘ํ•˜๋„๋ก ์š”์†Œ์˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ชฉ๋ก์€ h-sorted๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๊ฐ๊ฐ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ •๋ ฌ๋œ h ์ธํ„ฐ๋ฆฌ๋ธŒ ๋ชฉ๋ก์œผ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(nlog2 2n)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(n log n)
  • Average case performance depends on gap sequence
View the algorithm in action

์‹œ๊ฐ„ ๋ณต์žก์„ฑ ๊ทธ๋ž˜ํ”„

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก์„ฑ ๋น„๊ต (๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ)

๋ณต์žก์„ฑ ๊ทธ๋ž˜ํ”„


๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Linear (์„ ํ˜• ํƒ์ƒ‰)

alt text

From Wikipedia: ์„ ํ˜• ํƒ์ƒ‰ ๋˜๋Š” ์ˆœ์ฐจ ํƒ์ƒ‰์€ ๋ชฉ๋ก ๋‚ด์—์„œ ๋ชฉํ‘œ๊ฐ’์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ผ์น˜ ํ•ญ๋ชฉ์ด ๋ฐœ๊ฒฌ๋˜๊ฑฐ๋‚˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํƒ์ƒ‰๋  ๋•Œ๊นŒ์ง€ ๋ชฉ๋ก์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ๋ชฉํ‘œ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•œ๋‹ค. ์„ ํ˜• ๊ฒ€์ƒ‰์€ ์ตœ์•…์˜ ์„ ํ˜• ์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ ์ตœ๋Œ€ n๊ฐœ์˜ ๋น„๊ต์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค. ์—ฌ๊ธฐ์„œ n์€ ๋ชฉ๋ก์˜ ๊ธธ์ด๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(n)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(1)
  • ํ‰๊ท  O(n)
  • ์ตœ์•…์˜ ๊ฒฝ์šฐ ๊ณต๊ฐ„ ๋ณต์žก์„ฑ O(1) iterative

Binary (์ด์ง„ ํƒ์ƒ‰)

alt text

From Wikipedia: ์ด์ง„ ํƒ์ƒ‰, (also known as half-interval search or logarithmic search), ์€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋‚ด์—์„œ ๋ชฉํ‘œ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋ชฉํ‘œ๊ฐ’์„ ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„ ์š”์†Œ์™€ ๋น„๊ตํ•œ๋‹ค; ๋งŒ์•ฝ ๋ชฉํ‘œ๊ฐ’์ด ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด, ๋ชฉํ‘œ๋ฌผ์˜ ์ ˆ๋ฐ˜์ด ์ œ๊ฑฐ๋˜๊ณ  ๊ฒ€์ƒ‰์ด ์„ฑ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์—์„œ ์†๋œ๋‹ค.

์†์„ฑ

  • ์ตœ์•…์˜ ์„ฑ๋Šฅ O(log n)
  • ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ O(1)
  • ํ‰๊ท  O(log n)
  • ์ตœ์•…์˜ ๊ฒฝ์šฐ ๊ณต๊ฐ„ ๋ณต์žก์„ฑ O(1)

๋‚˜๋จธ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋งํฌ

์ „ํ™˜ ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) ์•”ํ˜ธ ๊ทธ ์™ธ ๊ฒƒ๋“ค
Any Base to Any Base Coin Change Caesar Heap Sort
Any Base to Decimal Egg Dropping Columnar Transposition Cipher Palindromic Prime Checker
Binary to Decimal Fibonacci RSA More soon...
Binary to HexaDecimal Kadane Algorithm more coming soon...
Binary to Octal Knapsack
Decimal To Any Base Longest Common Subsequence
Decimal To Binary Longest Increasing Subsequence
Decimal To Hexadecimal Rod Cutting
and much more... and more...

์ž๋ฃŒ ๊ตฌ์กฐ

๊ทธ๋ž˜ํ”„ ํž™ ๋ฆฌ์ŠคํŠธ ํ
๋นˆ ํž™ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์›ํ˜• ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ œ๋„ˆ๋ฆญ ์–ด๋ ˆ์ด ๋ฆฌ์ŠคํŠธ ํ
ํž™ ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํ
๊ทธ๋ž˜ํ”„ ํž™ ์š”์†Œ ๋‹จ์ˆœ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ
ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ๋Œ€ํž™
ํ–‰๋ ฌ ๊ทธ๋ž˜ํ”„ ์ตœ์†Œํž™
ํ”„๋ฆผ ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ
์Šคํƒ ํŠธ๋ฆฌ
๋…ธ๋“œ ์Šคํƒ AVL ํŠธ๋ฆฌ
์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์Šคํƒ ์ด์ง„ ํŠธ๋ฆฌ
์Šคํƒ And much more...