μ λ ¬ μκ³ λ¦¬μ¦
λΉκ΅ κΈ°λ° μκ³ λ¦¬μ¦(λ²λΈ μ λ ¬, ν΅ μ λ ¬, λ³ν© μ λ ¬, ν μ λ ¬)κ³Ό μ ν μκ° μ λ ¬(κ³μ μ λ ¬, κΈ°μ μ λ ¬)λ‘ λ°μ΄ν°λ₯Ό μ λ ¬νλ κΈ°μ μ λ§μ€ν°νμΈμ. μμ μ λ ¬κ³Ό λΆμμ μ λ ¬μ μ°¨μ΄λ₯Ό μ΄ν΄νκ³ , μκ°-κ³΅κ° νΈλ μ΄λμ€νλ₯Ό νμ νλ©°, λ°μ΄ν°λ² μ΄μ€, κ²μ μμ§, λ°μ΄ν° μ²λ¦¬ νμ΄νλΌμΈμμμ μ€μ μμ© μ¬λ‘λ₯Ό νμΈνμΈμ.
λ²λΈ μ λ ¬
BeginnerμΈμ ν μμλ₯Ό λ°λ³΅μ μΌλ‘ λΉκ΅νκ³ μμκ° μλͺ»λ κ²½μ° κ΅ννλ κ°μ₯ κΈ°λ³Έμ μΈ μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. κ±°νμ΄ μλ©΄μΌλ‘ λ μ€λ₯΄λ―μ΄ ν° κ°μ΄ μ μ°¨ λ°°μ΄μ λμΌλ‘ μ΄λν©λλ€. μμ λ°μ΄ν°μ μ΄λ μ λ ¬μ κΈ°λ³Έ μ리λ₯Ό μ΄ν΄νκΈ° μν κ΅μ‘ λͺ©μ μ κ°μ₯ μ ν©ν©λλ€.
μ ν μ λ ¬
Beginnerκ°μ₯ μμ μμλ₯Ό μ°Ύμ λ°λ³΅μ μΌλ‘ μμΌλ‘ μ΄λμν΅λλ€. κ° λ°λ³΅λ§λ€ λ¨μ μμ μ€μμ μ΅μκ°μ "μ ν"νκ³ μ λ ¬λ λΆλΆ λ€μ λ°°μΉν©λλ€. μ΅μνμ λ©λͺ¨λ¦¬ μ¬μ©μΌλ‘ ꡬνμ΄ κ°λ¨νμ§λ§ μ λ ₯μ κ΄κ³μμ΄ νμ O(nΒ²) μκ°μ΄ 걸립λλ€.
ν΅ μ λ ¬
IntermediateνΌλ² μμλ₯Ό μ ννκ³ λ°°μ΄μ μΌμͺ½μλ μμ κ°, μ€λ₯Έμͺ½μλ ν° κ°μΌλ‘ λΆν νλ λ§€μ° ν¨μ¨μ μΈ μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. νκ· O(n log n) μκ° λ³΅μ‘λλ₯Ό κ°μ§λ©° μ€μ λ‘ κ°μ₯ λ리 μ¬μ©λλ μ λ ¬ λ°©λ²μ λλ€. λλΆλΆμ νλ‘κ·Έλλ° μΈμ΄μμ λ΄μ₯ μ λ ¬ ν¨μμ κΈ°μ΄λ₯Ό νμ±ν©λλ€.
ν μ λ ¬
Advancedλ¨Όμ μ΅λ νμ ꡬμΆν λ€μ λ£¨νΈ μμλ₯Ό λ°λ³΅μ μΌλ‘ μΆμΆνμ¬ μ λ ¬νλ μ΄μ§ ν λ°μ΄ν° ꡬ쑰λ₯Ό μ¬μ©ν©λλ€. μΆκ° λ©λͺ¨λ¦¬ μμ΄ λͺ¨λ κ²½μ°μ O(n log n) μκ° λ³΅μ‘λλ₯Ό 보μ₯ν©λλ€. μ°μ μμ ν ꡬνμ κΈ°μ΄λ‘λ μ¬μ©λ©λλ€.
κ³μ μ λ ¬
Intermediateκ° μμμ λ°μ νμλ₯Ό μΈκ³ μ°μ μ°μ°μ ν΅ν΄ μμΉλ₯Ό κ²°μ νλ λΉλΉκ΅ μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. kκ° μ λ ₯ κ°μ λ²μμΌ λ O(n+k) μκ° λ³΅μ‘λλ₯Ό λ¬μ±ν©λλ€. μλ €μ§ μ νλ λ²μ λ΄μ μ μ μ λ ¬μ μ΄μμ μ λλ€. κΈ°μ μ λ ¬μ κΈ°μ΄κ° λ©λλ€.
κΈ°μ μ λ ¬
Advancedμ΅νμ μλ¦ΏμλΆν° μ΅μμ μλ¦ΏμκΉμ§ μλ¦Ώμλ³λ‘ μμλ₯Ό μ²λ¦¬νλ λΉλΉκ΅ μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. κ° μλ¦Ώμ μμΉμμ κ³μ μ λ ¬μ μλΈλ£¨ν΄μΌλ‘ μ¬μ©ν©λλ€. dκ° μλ¦ΏμμΌ λ O(d(n+k)) μκ°μ λ¬μ±ν©λλ€. μ μλ κ³ μ κΈΈμ΄ λ¬Έμμ΄ μ λ ¬μ νμν©λλ€.
μ Έ μ λ ¬
Intermediateλ©λ¦¬ λ¨μ΄μ§ μμμ κ΅νμ νμ©νλ μ½μ μ λ ¬μ μ΅μ νμ λλ€. 1λ‘ κ°μνλ κ°κ²© μνμ€λ₯Ό μ¬μ©νμ¬ μμλ₯Ό μ΅μ’ μμΉμ λ λΉ λ₯΄κ² μ΄λμν΅λλ€. 1959λ Donald Shellμ΄ λ°λͺ ν μκ³ λ¦¬μ¦μ μ΄λ¦μ λ°μ λͺ λͺ λμμ΅λλ€.
λ²ν· μ λ ¬
Advancedμμλ₯Ό μ¬λ¬ λ²ν·μ λΆλ°°νλ λΆν¬ κΈ°λ° μ λ ¬ μκ³ λ¦¬μ¦μ λλ€. κ° λ²ν·μ λ€λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ κ°λ³μ μΌλ‘ μ λ ¬λ©λλ€. μ λ ₯μ΄ λ²μμ κ±Έμ³ κ· μΌνκ² λΆν¬λμ΄ μμ λ κ°μ₯ μ μλν©λλ€. νκ· μκ° λ³΅μ‘λλ O(n+k)μ λλ€.
λ³ν© μ λ ¬
Intermediateλ°°μ΄μ λ°μΌλ‘ λλκ³ , κ° μ λ°μ μ¬κ·μ μΌλ‘ μ λ ¬ν λ€μ, λ€μ λ³ν©νλ λΆν μ 볡 μκ³ λ¦¬μ¦μ λλ€. O(n log n) μκ°μ 보μ₯νκ³ μμ μ μ΄μ§λ§ μΆκ° λ©λͺ¨λ¦¬κ° νμν©λλ€. ν° λ°μ΄ν°μ κ³Ό μ°κ²° 리μ€νΈ μ λ ¬μ νΉν ν¨κ³Όμ μ λλ€.
μ½μ μ λ ¬
Beginnerμμ μλ μΉ΄λλ₯Ό μ λ ¬νλ κ²μ²λΌ μλν©λλ€ - κ° μμλ₯Ό ν λ²μ νλμ© μ μ ν μμΉμ μ½μ ν©λλ€. μ΄λ―Έ μ λ ¬λ λ°μ΄ν°μ λν΄ O(n) μκ°μ μ€νλλ―λ‘ μμ λ°°μ΄μ΄λ κ±°μ μ λ ¬λ λ°μ΄ν°μ μ λ§€μ° ν¨μ¨μ μ λλ€. κ°λ¨νλ©΄μλ μ μν μκ³ λ¦¬μ¦μ λλ€.
λΉ μ λ ¬
Beginner1.3 λ°°μλ‘ μ€μ΄λλ λ ν° κ°κ²©μΌλ‘ μμλ₯Ό λΉκ΅νμ¬ λ°°μ΄ λμ μμ κ°("κ±°λΆμ΄")μ μ κ±°νλ λ²λΈ μ λ ¬μ κ°μ μ λλ€. κ°λ¨ν μμ μΌλ‘ μ±λ₯μ O(nΒ²)μμ μ€μ λ‘ O(nΒ²/2^p)λ‘ κ·Ήμ μΌλ‘ κ°μ ν©λλ€. μμ μκ³ λ¦¬μ¦ μ‘°μ μ΄ μ΄λ»κ² μλΉν κ°μ μ κ°μ Έμ¬ μ μλμ§ λ³΄μ¬μ€λλ€.
λ μ λ ¬
Beginnerκ°λ μ μΌλ‘ κ°μ₯ κ°λ¨ν μ λ ¬ μκ³ λ¦¬μ¦ - μμκ° μμλλ‘ μμ λλ μμΌλ‘ μ΄λνκ³ , κ·Έλ μ§ μμΌλ©΄ κ΅ννκ³ λ€λ‘ μ΄λν©λλ€. κ½λ³μ μ λ ¬νλ λ€λλλ μ μ λμ μ΄λ¦μ λ°μ λͺ λͺ λμμ΅λλ€. μ½μ μ λ ¬κ³Ό μ μ¬νμ§λ§ ꡬνμ΄ λ κ°λ¨ν©λλ€. O(nΒ²) 볡μ‘λμλ λΆκ΅¬νκ³ μ λ ¬ λ©μ»€λμ¦μ μ΄ν΄νλ λ° κ΅μ‘μ κ°μΉκ° μμ΅λλ€.
π‘ νμ΅ ν
κΈ°μ΄λ₯Ό λ€μ§κΈ° μν΄ μ΄κΈ μκ³ λ¦¬μ¦λΆν° μμν λ€μ, μ€κΈ λ° κ³ κΈ μ£Όμ λ‘ μ§ννμΈμ. κ° μκ³ λ¦¬μ¦μλ μΈν°λν°λΈ μκ°ν, 볡μ‘λ λΆμ, κ·Έλ¦¬κ³ μ¬λ¬ μΈμ΄μ μ½λ μμ κ° ν¬ν¨λμ΄ μμ΅λλ€.