μκ³ λ¦¬μ¦μ μμ νμ(Brute-Force, λͺ¨λ κ²½μ°μ μλ₯Ό νμν΄λ³΄λ κ²)μμ μμνλ€. μ΄λ λͺ¨λ κ²½μ°μ μλ₯Ό λ€ λ°μ Έλ³΄κΈ° λλ¬Έμ κ°λ ₯νμ§λ§, μ΅λμ μκ°λ³΅μ‘λλ₯Ό κ°μ§κ² λλ€. λͺ¨λ κ²½μ°μ μλ₯Ό μκ°ν΄λ³΄κ³ , μκ°λ³΅μ‘λλ₯Ό μ€μΌ μ μλ λΆλΆμ΄ μλ€λ©΄ κ·Έλ¬ν μκ³ λ¦¬μ¦μ μκ°ν΄λ³΄κ³ , κ·Έ μκ³ λ¦¬μ¦μ μ ννκ² μ½λλ‘ κ΅¬νν μ μμ΄μΌ νλ€. μ’μ μ½λλ₯Ό μ§κΈ° μν΄μλ λ€μ κ³Όμ μ μ°μ΅μ΄ νμνλ€.
- λ¬Έμ λ₯Ό νμ νκ³ μκ³ λ¦¬μ¦μ μκ°νκΈ°
- μκ³ λ¦¬μ¦μ 곡κ°λ³΅μ‘λμ μκ°λ³΅μ‘λλ₯Ό κ³μ°νμ¬ λ¬Έμ μ μ μ½ μ‘°κ±΄ λ΄μ μνλ μ μλ μκ³ λ¦¬μ¦μΈμ§ νλ¨νκΈ°
- μκ³ λ¦¬μ¦μ λΉ λ₯΄κ³ μ ννκ² κ΅¬ννκΈ° (μ°μ΅λ§μ΄ μ λ΅)
λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν μ¬λ¬ λμλ€μ λͺ¨μμ λ§νλ©°, κ³ λ νλ₯΄μμμ μνμ μ콰리μ¦λ―Έ(Al-Khwarizmi)μμ μ λνμλ€.
- μ λ°μ± : λ³νμ§ μλ λͺ νν μμ λ¨κ³λ₯Ό κ°μ ΈμΌ νλ€.
- μ μΌμ± : κ° λ¨κ³λ§λ€ λͺ νν λ€μ λ¨κ³λ₯Ό κ°μ ΈμΌ νλ€.
- μ λ ₯ : μ μλ μ λ ₯μ λ°μλ€μΌ μ μμ΄μΌ νλ€.
- μΆλ ₯ : λ΅μΌλ‘ μΆλ ₯μ λ΄λ³΄λΌ μ μμ΄μΌ νλ€.
- μ νμ± : νΉμ μμ μμ μ΄νμ μ μ§ν΄μΌ νλ€. (μ μ§ μ‘°κ±΄)
- μΌλ°μ± : μ μλ μ λ ₯λ€μ μΌλ°μ μΌλ‘ μ μ©ν μ μμ΄μΌ νλ€.
ꡬνν μκ³ λ¦¬μ¦μ ν¨μ¨μ±μ λ°μ§ λ μκ°λ³΅μ‘λμ 곡κ°λ³΅μ‘λμ κ°λ
μ΄ λμ¨λ€.
μ
λ ₯ λ°μ΄ν°μ ν¬κΈ°κ° 컀μ§μλ‘ μκ³ λ¦¬μ¦μ μ±λ₯ μ°¨μ΄λ λλλ¬μ§λ€. μ±λ₯μ΄ μ’μ§ μμ μκ³ λ¦¬μ¦μΌ κ²½μ° μ
λ ₯ λ°μ΄ν°μ ν¬κΈ°κ° 컀μ‘μ λ μ€ν μκ°μ΄ λΉ λ₯΄κ² λμ΄λλ€. λ°λΌμ λ¬Έμ μ λ°λΌ 미리 μκ°λ³΅μ‘λλ₯Ό κ³μ°ν΄λ³΄κ³ λ¬Έμ 쑰건μ μ ν©ν μκ³ λ¦¬μ¦μΈμ§ νλ¨νλ κ³Όμ μ΄ μ€μνλ€.
μκ°λ³΅μ‘λλ μλνλ μκ³ λ¦¬μ¦μ μνμκ°μ μ λννλ κ²μ λ»νλ€.
μκ³ λ¦¬μ¦μ μκ°λ³΅μ‘λλ μ°μ°μ νμ T(N)μ ꡬνλ λ°©λ²μ΄ μ£Όλ‘ μ°μΈλ€. λ³΄ν΅ 1μ΅(10^8)λ²μ μ°μ°λΉ 1μ΄μ μκ°μ΄ κ±Έλ¦°λ€κ³ κ°μ£Όνλ€.
- λΉ
-μ€(Big-Oh,
) νκΈ°λ² : Worst Caseμ μ°μ°νμλ₯Ό λνλΈλ€.
- λΉ
-μ€λ©κ°(Big-Omega,
) νκΈ°λ² : Best Caseμ μ°μ°νμλ₯Ό λνλΈλ€.
- λΉ
-μΈν(Big-Theta,
νκΈ°λ² : Average Caseμ μ°μ°νμλ₯Ό λνλΈλ€.
μΌλ°μ μΌλ‘ μκ°λ³΅μ‘λλ₯Ό ννν λ **λΉ -μ€ νκΈ°λ²(Big-O Notation)**μ μ¬μ©νλ€. λΉ -μ€ νκΈ°λ²μ μ°μ° νμ T(N)μμ μ΅κ³ μ°¨νλ§μ νκΈ°νλ νκΈ°λ²μ΄λ€. μκ³ λ¦¬μ¦μ μ€ν μκ°μ΄ n + n^2μ λΉλ‘νλ€κ³ ν λ, nμ΄ λ§€μ° μ»€μ§λ©΄ n^2μ΄λ n + n^2μ΄λ ν° μ°¨μ΄κ° λμ§ μκ² λκΈ° λλ¬Έμ΄λ€.
- μμν
O(1): νμ μΌμ ν μκ° μμ μ€ν μλ£ - λ‘κ·Έν
O(logN): μ€ν μκ°μ΄ μ λ ₯ ν¬κΈ°μ λ‘κ·Έμ λΉλ‘ν΄μ λμ΄λ¨ - μ ν
O(N): μ€ν μκ°μ΄ μ λ ₯ ν¬κΈ°μ λ°λ‘ λΉλ‘ (μ νμ μΌλ‘ μ¦κ°) - μ νλ‘κ·Έν
O(NlogN): μ ν μκ³ λ¦¬μ¦κ³Ό λ€νμ μκ³ λ¦¬μ¦μ μ€κ°μ―€ μλ - λ€νμν
O(N^c): μ λ ₯ ν¬κΈ°κ° λμ΄λλ©΄ μ€ν μκ°μ΄ λΉ λ₯΄κ² λμ΄λ¨ - μ§μν
O(c^N): λ€νμ μκ³ λ¦¬μ¦λ³΄λ€λ λ λΉ λ₯΄κ² λμ΄λ¨ - ν©ν 리μΌν
O(N!): κ°μ₯ λλ¦° μκ³ λ¦¬μ¦. nμ΄ μμλ κΈλ°© κ±°μ μ°κΈ° νλ μμ€μΌλ‘ λλ €μ§λ€.
κ·Έλ¦Όμ 보면 μ μ μ λ―μ΄, O(n^2)λΆν° μ€ν μκ°μ΄ ν¬κ² λμ΄λλ€. μ νλ‘κ·Έν(μ€μ ν) O(NlogN) μκ³ λ¦¬μ¦ λλ κ·Έλ³΄λ€ λ λΉ λ₯Έ μκ³ λ¦¬μ¦μ μ°ΎμΌλ©΄ μ ν리μΌμ΄μ
μ±λ₯μ ν¬κ² ν₯μμν¬ μ μλ€.
곡κ°λ³΅μ‘λλ μκ³ λ¦¬μ¦μ λ©λͺ¨λ¦¬ μ¬μ©λμ λν λΆμ κ²°κ³Όλ‘, μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ¬μ©νλ λ©λͺ¨λ¦¬μ ν¬κΈ°λ₯Ό λ§νλ€. μλ² λλ μμ€ν μ²λΌ μ μ½μ΄ λ§μ νκ²½μμλ λ©λͺ¨λ¦¬ μ©λμ΄ μ€ν μκ° λͺ»μ§μκ² μ€μνλ€.
μ΄λ₯Ό μ μκΈ° μν΄μλ μλ£ν λ³ λ©λͺ¨λ¦¬ ν¬κΈ°κ° μ΄λ€μ§, μ€μ μλ£κ΅¬μ‘°κ° μ΄λ»κ² ꡬνλλμ§ λ±μ μ λλ‘ μ΄ν΄νλ κ²μ΄ μ€μνλ€.

