π§ κ·Έλμ μλ£κ΅¬μ‘°&μκ³ λ¦¬μ¦μ 곡λΆνλ©΄μ 곡λΆνλ μ΄λ‘ λ§λ€ μκ°λ³΅μ‘λλ₯Ό ν¬ν¨νμ¬ νμ΅μ νμλ€. κ°λ μ λ°λ‘ 곡λΆνκΈ΄ νμκΈ°μ μ΄ν΄λ₯Ό νκ³€ νμμ§λ§ μ‘°κΈ λ κΉμ μ΄ν΄λ₯Ό μν΄ Big-O notationμ λν΄ μ§κ³ λμ΄κ°κ³ μ νλ€.
μμν 무μ
: λΉ
μ€ νκΈ°λ²μ λ°μ΄ν° μ
λ ₯κ°(n)μ΄ μΆ©λΆν ν¬λ€κ³ κ°μ νκ³ μκ³ , μκ³ λ¦¬μ¦μ ν¨μ¨μ± λν λ°μ΄ν° μ
λ ₯κ°(n)μ ν¬κΈ°μ λ°λΌ μν₯ λ°κΈ° λλ¬Έμ μμν κ°μ μ¬μν λΆλΆμ 무μνλ€.
ex) O(2n) --> O(n)
μν₯λ ₯ μλ ν 무μ
: λΉ
μ€ νκΈ°λ²μ λ°μ΄ν° μ
λ ₯κ°(n)μ ν¬κΈ°μ λ°λΌ μν₯μ λ°κΈ° λλ¬Έμ κ°μ₯ μν₯λ ₯μ΄ ν° νμ μ΄μΈμ μν₯λ ₯μ΄ μλ νλ€μ 무μνλ€.
ex) O(n2+9n+1) --> O(n2)
β O(1) : μ
λ ₯κ°μ μκ΄μμ΄ μΌμ ν μ€νμκ°μ κ°μ§λ νλ₯ν μκ³ λ¦¬μ¦μ΄λΌ ν μ μλ€. νμ§λ§ μμκ°μ΄ μμ μ΄μμΌλ‘ ν΄ κ²½μ° μ¬μ€μ μΌμ ν μκ°μ μλ―Έκ° μλ€. μ΅κ³ μ μκ³ λ¦¬μ¦μ΄ λ μ μμ§λ§ κ·Έλ§νΌ μ μ€ν΄μΌ νλ€.
π ex) μ€νμμμ pop, push
β O(log n) : λ‘κ·Έλ λ§€μ° ν° μ
λ ₯κ°μμλ ν¬κ² μν₯μ λ°μ§ μλ νΈμ΄λ€. λ§€μ° κ²¬κ³ ν μκ³ λ¦¬μ¦μ΄λ€.
π ex) μ΄μ§ νμ νΈλ¦¬
β O(n) : μκ³ λ¦¬μ¦μ μννλλ° κ±Έλ¦¬λ μκ°μ μ
λ ₯κ°μ λΉλ‘νλ€. μ΄λ¬ν μκ³ λ¦¬μ¦μ μ ν μκ° μκ³ λ¦¬μ¦μ΄λΌ λΆλ₯Έλ€. μ λ ¬λμ§ μμ 리μ€νΈμμ μ΅λ λλ μ΅μκ°μ μ°Ύλ κ²½μ°κ° ν΄λΉλλ©° λͺ¨λ μ
λ ₯κ°μ μ μ΄λ ν λ² μ΄μμ μ΄ν΄λ΄μΌ νλ€.
π ex) for λ¬Έ
β O(nlog n) : λ³ν© μ λ ¬λ±μ λλΆλΆ ν¨μ¨μ΄ μ’μ μκ³ λ¦¬μ¦μ΄ μ΄μ ν΄λΉ νλ€. μ무리 μ’μ μκ³ λ¦¬μ¦μ΄λΌ ν μ§λΌλ n log n λ³΄λ€ λΉ λ₯Ό μ μλ€. μ
λ ₯κ°μ΄ μ΅μ μΌ κ²½μ°, λΉκ΅λ₯Ό 건λ λ°μ΄ O(n)μ΄ λ μ μλ€.
π ex) ν΅ μ λ ¬(quick sort), λ³ν©μ λ ¬(merge sort), ν μ λ ¬(heap Sort)
β O(n^2) : λ²λΈ μ λ ¬ κ°μ λΉν¨μ¨μ μΈ μ λ ¬ μκ³ λ¦¬μ¦μ΄ μ΄μ ν΄λΉ νλ€.
π ex) μ΄μ€ for λ¬Έ, μ½μ
μ λ ¬(insertion sort), λ²λΈμ λ ¬(bubble sort), μ νμ λ ¬(selection sort)
β O(2^n) : νΌλ³΄λμΉμ μλ₯Ό μ¬κ·λ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ΄ μ΄μ ν΄λΉ νλ€. n^2μ νΌλλλ κ²½μ°κ° μλλ° 2^nμ΄ ν¨μ¬ λ ν¬λ€.
π ex) νΌλ³΄λμΉ μμ΄
β O(n!) : κ°μ₯ λλ¦° μκ³ λ¦¬μ¦μΌλ‘ μ λ ₯κ°μ΄ μ‘°κΈλ§ μ»€μ Έλ κ³μ°μ΄ μ΄λ ΅λ€.