์ ํ์
- ์์ด์ ๊ท๋ฉ์ ์ ์์ ์ ์ฌ
- ์ฐจ์ด : ์ธ์ ํ ํญ๊ฐ์ ๊ด๊ณ๋ง์ ๋ค๋ฃจ๋ ๊ฒ์ ์๋๋ค.
- ์ด๋ค ํจ์๋ฅผ ์์ ๋ณด๋ค ๋ ์์ ๋ณ์์ ๋ํ ํจ์ ์์ ๊ณผ์ ๊ด๊ณ๋ก ํํํ ๊ฒ. (์์ด = ์ ์์ญ์ด ์ ์์ธ ํจ์)
- ๋๋ถ๋ฆ, ํน์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ ๋ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ตฌํ๋๋ฐ์ ์ฌ์ฉํจ
- ex) T(n) = T(n-1) + 1 + T(n-1) = 2T(n-1) + 1
- An = T(n), An = 2A(n-1) + 1
์ ํ์์ ํธ๋ ๋ฒ
1. ๋ฐ๋ณต ๋์น : ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ด์ฉํ์ฌ ์ ์ ์์ ํจ์๋ก ๋ฐ๋ณตํด์ ๋์นํ๋ ๋ฐฉ๋ฒ. ์นจ์ฐฉํ๊ฒ ๊ผผ๊ผผํ!
2. ์ถ์ ํ ์ฆ๋ช : ์ ํ์์ ๊ฒฐ๋ก ์ ์ถ์ ํ๊ณ , ๊ท๋ฉ๋ฒ์ผ๋ก ์ฆ๋ช ํจ. ๋ฐ๋ณต ๋์น๊ฐ ๋ณต์กํ ๋ ์ ์ฉํจ. but ์ถ์ ์ด ์ฝ์ง ์์ ์ ์์
3. ๋ง์คํฐ ์ ๋ฆฌ : ์ ํ์ ๊ณต์. ์ฌ๊ธฐ์์๋ ๋ค๋ฃจ์ง ์๋๋ค.
๋ฐ๋ณต ๋์น
์์ 1
T(n) = T(n-1) + n, T(1) = 1 ์ผ๋,
T(n) = T(n-1) + n = T(n-2) + n-1 + n = T(n-3) + n-2 + n-1 + n
= … = T(1) + 2 + 3 + … + n
= n(n+1)/2 = Θ(n^2)
์์ 2
T(n) = 2T(n/2) + n, T(1) = 1 ์ผ๋,
→ n = 2^k (k = log2 n) ์ด๋ผ๊ณ ๊ฐ์ .
T(n) = 2T(n/2) + n
= 2{ 2T(n/4) + n/2 } + n
= … = 2^kT(n/2^k) + kn
→ ์ฌ๊ธฐ์ T(1)์ ๋ง๋ค๊ธฐ ์ํด k=log n (๋ฐ=2) ๋์ ํ๋ฉด nT(1) + nlog n = n*log n + n
( n log n <= n log n + n <= 2n log n )
= Θ(n log n)
์ถ์ ํ ์ฆ๋ช
T(n) = 2T(n/2) + n
์ถ์ : T(n) = O(n log n), ์ฆ T(n) ≤ cn log n ์ด๋ผ๊ณ ์ถ์ ํ๋ค.
2T(n/2) + n ≤ cn log n
์ฆ๋ช :
T(n) = 2T(n/2) + n ≤ 2c(n/2)log(n/2) + n [ โต T(n/2) ≤ c(n/2)log(n/2) ]
= cn log (n/2) + n = cn log n + n - cn log 2 ≤ cn log n
'๐ ์ ๊ณต ๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ ํด์ ๋ฐ ์ค๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] Greedy algorithm - ์ด์งํธ ๋๋์ (cpp) (0) | 2023.02.09 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ์ ์ต์ ์ฑ (0) | 2023.01.16 |
[์๊ณ ๋ฆฌ์ฆ] ๋น๊ต๊ธฐ๋ฐ ์ ๋ ฌ์ ํ๊ณ/๋น๊ต์ ๊ธฐ๋ฐํ์ง ์์ ์ ๋ ฌ (0) | 2023.01.16 |
[์๊ณ ๋ฆฌ์ฆ] ๋น๊ต ๊ธฐ๋ฐ ์ ๋ ฌ ๋ฌธ์ (0) | 2023.01.16 |
[์๊ณ ๋ฆฌ์ฆ] ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ๋ฐ ์ ์ (0) | 2023.01.16 |