μ νμ
- μμ΄μ κ·λ©μ μ μμ μ μ¬
- μ°¨μ΄ : μΈμ ν νκ°μ κ΄κ³λ§μ λ€λ£¨λ κ²μ μλλ€.
- μ΄λ€ ν¨μλ₯Ό μμ λ³΄λ€ λ μμ λ³μμ λν ν¨μ μμ κ³Όμ κ΄κ³λ‘ ννν κ². (μμ΄ = μ μμμ΄ μ μμΈ ν¨μ)
- λλΆλ¦, νΉμ μ μ¬ν λ°©μμΌλ‘ λ¬Έμ λ₯Ό ν λ 걸리λ μκ°μ ꡬνλλ°μ μ¬μ©ν¨
- 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 |