์ด ๊ฐ๋ฐ๋ธ๋ฐ์น๋ ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ Java ํ๋ก์ ํธ ๊ตฌ์กฐ๋ก ์ฌ๊ฐ๋ฐํ๊ธฐ ์ํด ์์ฑ๋์๋ค. ๊ธฐ์ฌ๋๋ฅผ ์ํด ๊ฐ๋ฐ ์ง์ฌ๋ก ์ ํํ ์ ์๋ค. ์์ธํ ๋ด์ฉ์ ์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ปจํธ๋ฆฌ๋ทฐ์ ์ ์ํด ๊ฐ๋ฐ๋ธ๋ฐ์น๋ก ์ ํํ ์ ์๋ค. ์์ธํ ๋ด์ฉ์ ์ด ์ด์๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
์ด๊ฒ๋ค์ ๋จ์ง ์๋ฒ์ ์ํ ๊ฒ์ด๋ค. ํ์ค ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ๋ ๋์ ๊ฒ๋ค์ด ๊ตฌํ๋์ด์๋ค
From Wikipedia: ๋ฒ๋ธ ์ํธ(sinking sor๋ผ๊ณ ๋ ๋ถ๋ฆฌ์)๋ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋ณต์ ์ธ ๋จ๊ณ๋ก ์ ๊ทผํ์ฌ ์ ๋ ฌํ๋ค. ๊ฐ๊ฐ์ ์ง์ ๋น๊ตํ๋ฉฐ, ์์๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ ๊ทธ์ ํ ์์ดํ ๋ค์ ์ค์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ ์ด์ ์ค์ํ ๊ฒ์ด ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉฐ, ๋ฐ๋ณต์ด ๋๋จ์ ๋ฆฌ์คํธ๊ฐ ์ ๋ ฌ๋์์์ ์๋ฏธํ๋ค.
์์ฑ
- ์ต์ ์ ์ฑ๋ฅ O(n^2)
- ์ต๊ณ ์ ์ฑ๋ฅ O(n)
- ํ๊ท ์ฑ๋ฅ O(n^2)
View the algorithm in action
From Wikipedia: ์ฝ์ ์ ๋ ฌ์ ์ต์ข ์ ๋ ฌ๋ ๋ฐฐ์ด(๋๋ ๋ฆฌ์คํธ)์ ํ๋ฒ์ ํ๋์ฉ ๊ตฌ์ถํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ด๊ฒ์ ํฐ ๋ฆฌ์คํธ์์ ๋ ๋์ ์๊ณ ๋ฆฌ์ฆ์ธ ํต ์ํธ, ํ ์ํธ, ๋๋ ๋จธ์ง ์ํธ๋ณด๋ค ํจ์ฌ ์์ข์ ํจ์จ์ ๊ฐ์ง๋ค. ๊ทธ๋ฆผ์์ ๊ฐ ๋ง๋๋ ์ ๋ ฌํด์ผ ํ๋ ๋ฐฐ์ด์ ์์๋ฅผ ๋ํ๋ธ๋ค. ์๋จ๊ณผ ๋ ๋ฒ์งธ ์๋จ ๋ง๋์ ์ฒซ ๋ฒ์งธ ๊ต์ฐจ์ ์์ ๋ฐ์ํ๋ ๊ฒ์ ๋ ๋ฒ์งธ ์์๊ฐ ์ฒซ ๋ฒ์งธ ์์๋ณด๋ค ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ง๋๋ก ํ์๋๋ ์ด๋ฌํ ์์๋ฅผ ๊ตํํ ๊ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ฐ๋ณตํ๋ฉด ์ฝ์ ์ ๋ ฌ์ด ์๋ฃ๋๋ค.
์์ฑ
- ์ต์ ์ ์ฑ๋ฅ O(n^2)
- ์ต๊ณ ์ ์ฑ๋ฅ O(n)
- ํ๊ท O(n^2)
View the algorithm in action
From Wikipedia: ์ปดํจํฐ ๊ณผํ์์, ํฉ๋ณ ์ ๋ ฌ์ ํจ์จ์ ์ธ, ๋ฒ์ฉ์ ์ธ, ๋น๊ต ๊ธฐ๋ฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋๋ถ๋ถ์ ๊ตฌํ์ ์์ ์ ์ธ ๋ถ๋ฅ๋ฅผ ์ด๋ฃจ๋๋ฐ, ์ด๊ฒ์ ๊ตฌํ์ด ์ ๋ ฌ๋ ์ถ๋ ฅ์ ๋์ผํ ์์์ ์ ๋ ฅ ์์๋ฅผ ์ ์งํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ํฉ๋ณ ์ ๋ ฌ์ 1945๋ ์ John von Neumann์ด ๋ฐ๋ช ํ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์์ฑ
- ์ต์ ์ ์ฑ๋ฅ O(n log n) (์ผ๋ฐ์ )
- ์ต๊ณ ์ ์ฑ๋ฅ O(n log n)
- ํ๊ท O(n log n)
View the algorithm in action
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
From Wikipedia: ์๊ณ ๋ฆฌ์ฆ ์ ๋ ฅ ๋ฆฌ์คํธ๋ฅผ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ค : ์ฒซ ๋ถ๋ถ์ ์์ดํ ๋ค์ด ์ด๋ฏธ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ๋ ฌ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ ๋ถ๋ถ์ ์์ดํ ๋ค์ ๋๋จธ์ง ํญ๋ชฉ์ ์ฐจ์งํ๋ ๋ฆฌ์คํธ์ด๋ค. ์ฒ์์๋ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ ๊ณต๋ฐฑ์ด๊ณ ๋๋จธ์ง๊ฐ ์ ๋ถ์ด๋ค. ์ค๋ฅด์ฐจ์(๋๋ ๋ด๋ฆผ์ฐจ์) ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฅ ์์ ์์๋ฅผ ์ ๋ ฌ๋์ง ์์ ๋ฆฌ์คํธ์์ ์ฐพ๊ณ ์ ๋ ฌ์ด ์๋ ๊ฐ์ฅ ์ผ์ชฝ(์ ๋ ฌ๋ ๋ฆฌ์คํธ) ๋ฆฌ์คํธ์ ๋ฐ๊พผ๋ค. ์ด๋ ๊ฒ ์ค๋ฅธ์ชฝ์ผ๋ก ๋์๊ฐ๋ค.
์์ฑ
- ์ต์ ์ ์ฑ๋ฅ O(n^2)
- ์ต๊ณ ์ ์ฑ๋ฅ O(n^2)
- ํ๊ท O(n^2)
View the algorithm in action
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
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก์ฑ ๋น๊ต (๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ์ ํ ์ ๋ ฌ)
From Wikipedia: ์ ํ ํ์ ๋๋ ์์ฐจ ํ์์ ๋ชฉ๋ก ๋ด์์ ๋ชฉํ๊ฐ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ์น ํญ๋ชฉ์ด ๋ฐ๊ฒฌ๋๊ฑฐ๋ ๋ชจ๋ ์์๊ฐ ํ์๋ ๋๊น์ง ๋ชฉ๋ก์ ๊ฐ ์์์ ๋ํด ๋ชฉํ๊ฐ์ ์์ฐจ์ ์ผ๋ก ๊ฒ์ฌํ๋ค. ์ ํ ๊ฒ์์ ์ต์ ์ ์ ํ ์๊ฐ์ผ๋ก ์คํ๋๋ฉฐ ์ต๋ n๊ฐ์ ๋น๊ต์์ ์ด๋ฃจ์ด์ง๋ค. ์ฌ๊ธฐ์ n์ ๋ชฉ๋ก์ ๊ธธ์ด๋ค.
์์ฑ
- ์ต์ ์ ์ฑ๋ฅ O(n)
- ์ต๊ณ ์ ์ฑ๋ฅ O(1)
- ํ๊ท O(n)
- ์ต์ ์ ๊ฒฝ์ฐ ๊ณต๊ฐ ๋ณต์ก์ฑ O(1) iterative
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... |