์๊ณ ๋ฆฌ์ฆ
Growth of Functions
function์ด ์ด๋ป๊ฒ ์๋ผ๋๊ฐ. Time complexity์ ๊ดํ ๊ฒ์ ๋ฐฐ์ฐ๋ ๊ณผ์ด๋ค. ๋ฌผ๋ก ๋๋ถ์ด์ Space complexity๋ ๋ถ์ํ๊ฒ ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ค ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์๋๋ฐ ์ด๋ค order(์ฐจ์)์์ ์ ์ฉ์ด ๋๋์ง๋ฅผ, ํจ์จ์ฑ์ ๊ฐ๋จํ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ค. Input size N์ด ๋ฌดํ๋๋ก ๊ฐ์ ๋ A, B ์๊ณ ๋ฆฌ์ฆ ์ด๋ ๊ฒ์ด ๋ ์ค๋๊ฑธ๋ฆฌ๋ ์ง๋ฅผ ๋ฒ์ฃผํํ์๋ ๊ฒ์ด๋ค. ๋ฌผ๋ก ์ด๋ค INput์ด ๋ค์ด๊ฐ๋์ง์ ๋ฐ๋ผ์ ์ฐจ์ด๊ฐ ์๊ฒ ์ง๋ง ์ด๋ค ๊ธ์ธ์ง๋ฅผ ๊ฐ๋จํ๊ฒ ๋ณด์ฌ์ฃผ๋ ํ ํฌ๋์ด ๋๊ฒ ๋ค.
Growth of Function
N = 2์ผ ๋ N = 3์ผ ๋ ์ด๋ฐ ์์ธํ ๊ฒ์ ๋ค๋ฃจ์ง ์๊ณ ๋ฌดํ๋๋ก ๊ฐ์ ๋ ์ด๋ป๊ฒ ๋๋์ง์ ๋ํ ์ํ์ ์์์ ์ด์ฉํด์ ์ด๋ ๊ธ์ ์๋์ง๋ฅผ ํ์ธํ๊ณ ์ ํ๋ค. Focus on what’s importatnt by abstracting away low-order term, 3์น๊ณผ 2์น์ด ์์ผ๋ฉด ์์์ 2์น์ ๋ชจ๋ ์ ์ธํ๊ณ ๋น๊ต๋ฅผ ํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.
Notation
์ํ ๊ธฐํธ๋ก 5๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. Little Oh, Little Omega๋ ๊ฑฐ์ ๋ค๋ฃจ์ง ์์ ๊ฒ. Theta, BigOh๋ฅผ ์ฃผ๋ก ๋ค๋ฃจ๊ฒ ๋ ๊ฒ์ด๋ค. n์ด ๋ฌดํ๋๋ก ๊ฐ์ ๋ cg(n)๊ณผ ๊ฑฐ์ ๋๊ธ์ ์๋ค๊ณ ํ๋ฉด Theta๊ฐ ๋๋ค. cg(n)๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด BigOh๋ผ๊ณ ํํ์ ํ๊ณ Upper Bound๋ผ๊ณ ์๊ธฐ๋ฅผ ํ๋ค. f(n)์ ๊ฒฐ์ฝ cg(n)์ ๋์ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ํํ์ ํ๋ค. ๋ฐ๋์ ๊ฒฝ์ฐ Omega๋ f(n) ์ด cg(n) ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ์ด๊ณ lower bound๋ผ๊ณ ์๊ธฐ๋ฅผ ํ๋ค.
O-notation
BigOh์ ์ํ์ ์ธ ํํ์ ๋ณผ ์ ์๋ค. ์ด๋ค ํน์ ์ง์ ์ ์ง๋๋ฉด f(n)์ cg(n) ๋ณด๋ค ํญ์ ์์ ์ง์ ์ด ์กด์ฌํ๋ค. ๊ทธ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ n0 ์ง์ ์ด ์กด์ฌํ๊ณ constant c ๊ฐ ์กด์ฌํ๋ฉด ๊ทธ๊ณณ์ O(g(n)) ์ด๋ผ๊ณ ํ ์ ์๋ค.
Lower bound
Exact bound
๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์ด๋ค. Upper bound์ lower bound๋ฅผ ๋ ๋ค ๋ง์กฑ์ ํ ๋๋ฅผ ๋งํ๋ค. ์์๋ฅผ ์ ์ธํ๊ณ ๋๋จธ์ง ์ ์ผ high order์ term์ ๋ง๋ค์ด ๋์ผ๋ฉด ์ธํ๊ฐ ๋๋ค.
Theorem and Rule
๋ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด Theta๋ผ๊ณ ํ ์ ์๋ค. ๋๋ก๋ ๋น๊ตํ๊ธฐ ์ด๋ ค์ธ ๋๊ฐ ์กด์ฌํ๋๋ฐ ๊ทธ๋ด ๋ ๋กํผํ์ ์๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋ถ์์ ๋ถ๋ชจ๋ฅผ ๋ ๋ค ๋ฏธ๋ถ์ ํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
Small o notation
์์ c์ equals sign์ด ์๋ค๋ ๊ฒ์ด ์ฐจ์ด์ ์ด๋ค. ์ธํ๊ฐ ๋น ์ง ๋ถ๋ถ์ด equal์ด ๋น ์ง ๋ถ๋ถ์ด ๋๋ค. n^3์ BigOh n^3์ ๋ง๋ ๋ง์ด๋ค. ํ์ง๋ง n^3์ ์ธํ n^3์ด๋ฏ๋ก small Oh๊ฐ ๋ ์ ์๋ค.
Little omega
์๊ธฐ ์์ ์ ๋ํ ์ธํ ๊ฐ์ด ์ ์ธ๋์ด์ผ ํ๋ฏ๋ก n์ด small Oh n์ด ๋ ์ ์๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ํ์์ผ๋ก ํํ์ ํด์ผ ํ๋ค. Time Complexity๋ฅผ ์ ์ผ๋ผ๊ณ ํ๋ฉด ์ธํ์ธ์ง ๋น ์ค์ธ์ง ํ์๋ฅผ ๊ผญ ํด์ผ ํ๋ค. Low order term์ ์ ๊ฑฐ๋ฅผ ํด์ ๊ฐ๋จํ๊ฒ ํํํด์ผ ํ๋ค.(*****)
Proposition
์ธํ์ ์ฑ์ง์ ์๊ธฐํ๊ณ ์๋ค. f์ g๊ฐ ์ธํ ๊ด๊ณ์ ์๋ค๊ณ ํ๋ฉด f์ g๋ ๋์ผํ order์ ์๋ค๊ณ ํ ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก n์ผ๋ก ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค๋ช ํ๋ค,. Upper bound์ lower bound, ์ธํ์ ๋ํ ์ ๋ฆฌ. As tight as possible, ๊ฐ๋ฅํํ ์ธํ๋ผ๋ ํํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๊ณ , ๊ทธ๋ ๊ธฐ ์ด๋ ต๋ค๋ฉด BigOh๋ฅผ ํตํด์ ํํ์ ํด์ผ ํ๋ค. ๊ฐ๋ฅํ ํ ์ธํ๋ฅผ ๋ถ์ด๊ณ , ์์ ๋ถ๋ ํํ ๋ฐฉ์์ ๋ฐ๋์ ๋ถ์ฌ์ผ ํ๋ค.
Optimality of algorithm
Inherent == ๋ด์ ํ๊ณ ์๋, ๊ฐ๊ฐ์ ๋ฌธ์ ๋ ์๋๋ถํฐ ๊ฐ๊ณ ์๋ ๋ณต์ก์ฑ์ด ์๋ค๋ ๊ฒ์ด๋ค, ๊ทธ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ์ต์ ํ์ํ ๋์ด ์กด์ฌํ๋ค๋ ๊ฒ์ด๋ค. Sorting์ ๊ฒฝ์ฐ n๊ฐ์ ์ซ์๊ฐ ์๊ณ ์์ ์ซ์๋ถํฐ ํฐ ์ซ์๊น์ง ์ ๋ ฌ์ ํ๋ ๊ฒ์ธ๋ฐ Constantํ ํ์์ ํ ์๋ ์์ ๊ฒ์ด๋ค. Sorting์ด๋ผ๋ ๋ฌธ์ ๋ฅผ ํ๋ ค๋ฉด ์ต์ํ nlogn์ ์๊ฐ์ด ํ์ํ๋ค๊ณ ์๊ธฐ๋ฅผ ํ๋ค. ์ด๋ค ๋ฌธ์ ๋ฅผ ํ๋ ์ต์ ํ์ํ ์๊ฐ์ lower bound of problem์ด๋ผ๊ณ ํ๋ค, ๊ทธ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ฒ์ด ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฌธ์ ๋ฅผ ํธ๋ ์๊ฐ์ ์ต์ nlogn์ธ๋ฐ ์ด๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ํ ์๋ ์๋ค. ๊ทธ๋์ merge sort๋ฅผ Optimal ํ๋ค๊ณ ํํ์ ํ ์ ์๋ค. Mergesort ๋ณด๋ค ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์กด์ฌํ ์ ์๋ค. Merge์ ๊ฐ์ order์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ์๋ค. ๋ํ์ ์ผ๋ก Heap sort๊ฐ ๋๋ค. ์ด์ ์๊ฐ ๋ณต์ก๋๋ ์ธํ nlogn์ด๋ค. Problem์ lower bound์ ์๊ณ ๋ฆฌ์ฆ์ worst case ์๊ฐ ๋ณต์ก๋๊ฐ ๋งค์น๋์์ ๋ Optimal ํ๋ค๋ ๊ฒ์ ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ.๊ฐ์ฅ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋๋ผ๋ Optimal ํ๋ค๊ณ ํ ์ ์๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๊ฐ์ฅ Lower bound๊ฐ Optimal ํ ๊ฒ์ด ๋๋ ๊ฒ์ด๋ค.
Example
์ด๋ค ์ฌ๋์ด ์ด ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ์ต์ํ n^2๋งํผ ๊ฑธ๋ฆฐ๋ค๊ณ ํ๋ค๊ณ ํ์. N ์ด๋ผ๊ณ ํ๋ฉด ์ด๋ ์๊ณ ๋ฆฌ์ฆ๋ optimal ํ์ง ์๋ค.
Asymptotic performance
์ธํ ๋น ์ค๋ก ํํํ๋ ๊ฒ์ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ธ๊ฐ๋ฅผ ํ๋จํ๋ ์ข์ ํด์ด ๋ ์ ์๋ค. ๋ ๋๋ฆฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๊ฒฌํ๋๋ผ๋ ๊ทธ๊ฒ์ ๋ฌด์ํด์๋ ์๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ์๊ณ ๋ฆฌ์ฆ์ INput ์ฌ์ด์ฆ๊ฐ n0๋ณด๋ค ์์ ๊ณณ์ ์์นํ๋ค๋ฉด slower ํ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
Practical Complexity
๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ์กฐ๊ธ๋ง ๋์ด๋ ์๊ฐ์ด ํจ์ฌ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ ์๊ฐ์ ์ง์ํจ์์ ์๊ฐ ๋ณต์ก๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Hierarchy of Orders
๋น ์ค f๊ฐ ๋น ์ค g์ ์ง๋ถ๋ถ ์งํฉ์ด๋ค๋ผ๊ณ ํ๋ฉด ๋น ์ค f๋ small order๋ค ๋ผ๊ณ ์๊ธฐํ ์ ์๋ค. ์ง๋ถ๋ถ ์งํฉ์ผ ๋!! Logn ๊ณผ ์คํ์ด n์ ๊ด๊ณ๋ฅผ ๋ณด๊ธฐ ์ํด์ ๋กํผํ์ ์ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค.
Time complexity comparison
Input size๊ฐ ๋ง์ด ์ปค์ง๊ฒ ๋๋ฉด , ์ปดํจํฐ๊ฐ ์ข์ง ์๋๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ์ข๋ค๋ฉด ๋ ๋นจ๋ฆฌ ๋์๊ฐ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋น ๋ฅธ ํ๋์จ์ด๋ฅผ ๋ง๋๋ ๊ฒ๋ ์ค์ํ์ง๋ง ๋น ๋ฅธ ์ํํธ์จ์ด๋ฅผ ๋ง๋๋ ๊ฒ๋ ์ค์ํ๋ค.
Divide and Conquer
๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๋ ๋ฆฌ์ปค๋ฐ์ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํํํ ์ ์๋ค.
๋ฆฌ์ปค๋ฐ์ค
๊ณ ๋ฑํ๊ต ๋ ์ ํ์์ผ๋ก ๋ฐฐ์ ์๋ค. function์ ์๊ธฐ๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ํจ์๋ก ์ ์๋ฅผ ํ๋ค. T(n)์ n๋ณด๋ค ์์ n/2์ผ๋ก ํํ์ ํ๋ค. ๊ณ์ ์ค์ด๋ค๋ค๊ฐ ์๋ฅผ ๋ค์ด n ์ด 1 ๋๋ 0, ์ถฉ๋ถํ ์์ ๊ฐ์ ์์ ๋ Constant time์ด๋ผ๊ณ ํ๋ค.
๋ฌธ์ ๊ฐ ์์์ง๊ฒ ๋๋ฉด Constant ๋ก ํ ์ ์๊ณ ๊ทธ ๊ฐ์ ํฉ์น๊ฒ ๋๋ฉด ๋๋ค. Floor์ ceiling์ผ๋ก ๋์ด์์ผ๋ฉด ํ๊ธฐ ํ๋ค๋ค. Boundary condition๋ํ ์ค์ํ๋ค. ๋งจ ๋์ผ๋ก ๊ฐ์ ๋
๋ฆฌ์ปค๋ฐ์ค ์์
n์ด ์์์ ธ์ ํํ์ด ๋๋ค.
ํธ๋ ๋ฐฉ๋ฒ
Recursion tree์ Master method๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
Substitution method
์ถ๋ก ํ ์ํ์ ๊ท๋ฉ๋ฒ์ผ๋ก ์ถ๋ก ํ๋ ๊ณผ์ ์ด๋ค.
์์์๋ฃ
3๊ฐ์ง ๋จ๊ณ๊ฐ ์๋๋ฐ ๋ง์ง๋ง ๋ถ๋ถ์์ ๋ค๋ฃจ๋๋ก ํ๋ค. mergesort์ ๋ฐฉ์ ์๊ณผ ๋์ผํ๋ค.
ํธ๋ฆฌ ๋ฐฉ๋ฒ
๋ ๋ฒจ ๋ง๋ค cost๋ฅผ ๋ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค. ๊ฐ๊ฐ์ ํ๋๊ฐ sub problem๋ค์ ๋ค ๋ํ๋ค ๋ณด๋ฉด ์ ์ฒด cost๊ฐ ๋์จ๋ค
ํธ๋ฆฌ ์์
ํธ๋ฆฌ๋ฅผ ์์ฑ์ํค๊ณ , ๋์ด๋ฅผ ๊ตฌํด์ผ ํ๋ค. 4์ n์น ๋ถ์ 1๋ก ๊ณ์ ์ค์ด๋ ๋ค. Leaf ์ n ๊ฐ์ ํตํด์ height๋ฅผ ๊ตฌํ ์ ์๋ค.
๊ทธ ๋ค์ ํญ์ ๊ฐ์๋ฅผ ๊ณ ๋ คํด๋ด์ผ ํ๋ค. Leaf level์ ์ ์ฒด ๊ฐ์๋ฅผ ๊ณ์ฐํด๋ด์ผ ํ๋ค.
๋น ์ค์ ๋น ์ค๋ฉ๊ฐ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฏ๋ก ์ธํ๋ผ๊ณ ํ ์ ์๋ค.
Iteration Method
Proof By Induction
N์ด ์ณ๋ค๊ณ ๊ฐ์ ํ์ง ๋ง๊ณ n-1๊น์ง ์ณ๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ฅ๊ฐ ์๋ค.
'๐ Major Study (Bachelor) > ๐จ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ 3์ฃผ์ฐจ ๋ชฉ์์ผ ๊ฐ์ (0) | 2022.03.17 |
---|---|
์๊ณ ๋ฆฌ์ฆ 3์ฃผ์ฐจ ์์์ผ ๊ฐ์ (0) | 2022.03.14 |
์๊ณ ๋ฆฌ์ฆ 2์ฃผ์ฐจ ๋ชฉ์์ผ (0) | 2022.03.10 |
์๊ณ ๋ฆฌ์ฆ 1์ฃผ์ฐจ ์์์ผ ๊ฐ์ (0) | 2022.03.01 |
์๊ณ ๋ฆฌ์ฆ 1์ฃผ์ฐจ ์์์ผ (0) | 2022.02.28 |