μκ° λ³΅μ‘λ
- μκ³ λ¦¬μ¦ μνμκ° λΆμ κ²°κ³Ό
- λ¨μν μ¦κ°νλ λΉμ¨μ λνλ΄λ κ°λ
- μνμκ°μ΄ μ΄λ»κ² λ³ννλμ§ ννν΄μ£Όλ λꡬ
- νκΈ° μ : $O(logN), O(N), O(NlogN), O(N^2), O(2^N), O(N!)$
- EX)
Q1. μμ κ°μ κ°λ‘ w, μΈλ‘ hμ μΈν리λ₯Ό μ λΆ μΉ νλλ° λλ μκ°μ Big-Oλ‘ νννλ©΄?
A1. O(wh)
Q2. pλ² λ§μΉ ν΄μΌ νλ€λ©΄ Big-Oλ?
A2. O(whp)
- Big-O(μ€), Big-Ξ(μΈν), Big-Ξ©(μ€λ©κ°)μ μ°¨μ΄
- Big-O : μκ°μ μν(higher) μνμκ°μ νν
- Big-Ξ : O, Ξ© λλ€ ν¬ν¨. λ± λ§λ(exactly right) μνμκ°μ νν
- Big-Ξ© : λ±κ°κ°λ νΉμ νν(lower) μνμκ°μ νν.
- μ΅μ , μ΅μ , νκ· (λ§μ μκ³ λ¦¬μ¦μ΄ μ΅μ κ³Ό νκ· μ΄ κ°μ κ²½μ°κ° λ§μ)
ν΅μ λ ¬('μΆ(pivot)'μ 무μμλ‘ μ μ ν΄μ μ΄λ³΄λ€ μμ κ°μ μμ, ν° κ°μ λ€μ μ λ ¬νλ μ λ ¬κΈ°λ²)μ μλ‘ λ€μλ©΄
- μ΅μ : λͺ¨λ μμκ° λμΌν μ $O(N)$
- μ΅μ : κ°μ₯ ν° μμκ° κ³μν΄μ μΆμ΄ λ κ²½μ° $O(N^2)$
- νκ· : μ΅μ κ³Ό μ΅μ μ νκ· $O(NlogN)$
μκ° λ³΅μ‘λ κ³μ°λ²
νλ§λλ‘, μ²λ¦¬ν΄μΌ ν λ°μ΄ν°μμ n * μ°μ°μ νμ(μμ λ° μ°μ΅λ¬Έμ λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ)
Big-Oμ μμλ μλμ κ°μλ°, λ³΄ν΅ $O(N^2)$μ΄μμ 볡μ‘λλ₯Ό κ°μ§λ μκ³ λ¦¬μ¦μ μ’μ§ μλ€.
$O(1) < O(logN) < O(N) < O(NlogN) < O(N^2) < O(2^N) < O(N!)$
κ³΅κ° λ³΅μ‘λ
μκ³ λ¦¬μ¦μ λ©λͺ¨λ¦¬ μ¬μ©λμ λν λΆμκ²°κ³Ό
μ¬κ·νΈμΆ μ μ¬μ©νλ μ€ν λν '곡κ°λ³΅μ‘λ' κ³μ°μ ν¬ν¨νλ€.
κ³΅κ° λ³΅μ‘λ κ³μ°λ²
λ©λͺ¨λ¦¬λ₯Ό μΌλ§λ μ¬μ©νλμ§ κ³μ°νλ©΄ λλ€.
νκΈ° μ :
- $O(n)$ : ν¬κΈ°κ° nμΈ λ°°μ΄μ λ§λ€ μ μλ 곡κ°
- $O(n^2)$ : n*n ν¬κΈ°μ 2μ°¨μ λ°°μ΄μ λ§λ€ μ μλ 곡κ°
μμνμ 무μνλΌ
$O(2N)$ -> $O(N)$μΌλ‘ νκΈ°
μ§λ°°μ μ΄μ§ μμ νμ 무μ(μ μΌ ν° κ²½μ°μ μλ§ νκΈ°)
$O(N^2+N)$ -> $O(N^2)$μΌλ‘ νκΈ°
$O(N+logN)$ -> $O(N)$μΌλ‘ νκΈ°
$O(5*2^N+1000N^{100})$ -> $O(2^N)$μΌλ‘ νκΈ°
$O(B^2+A)$ -> νλμ νμΌλ‘ νκΈ°ν μ μλ€.(Aμ Bμ νΉλ³ν κ΄κ³λ₯Ό μκ³ μμ§ μμ μ΄μ)
μ¬λ¬ λΆλΆμΌλ‘ μ΄λ£¨μ΄μ§ μκ³ λ¦¬μ¦ : λ§μ VS κ³±μ
λ§μ : Aμμ μ λλΈ ν Bμμ μ λλΈλ€λ©΄ λ§μ . $O(A+B)$
κ³±μ : Aμμ μ ν λ Bμμ μ κ°μ΄νλ©΄ κ³±μ . $O(A*B)$
μν μκ°
μ΅μ μ κ²½μ°λ κ°λ λ°μνμ§λ§, νλ² λ°μνλ©΄ κ·Έ νλ‘ κ½€ μ€λ«λμ λνλμ§ μμΌλ―λ‘ λΉμ©(μνμκ°)μ λΆν μν νλ€λ κ°λ .
$logN$ μν μκ°
μ΄λ€ λ¬Έμ μμ, μμμ κ°―μκ° μ λ° μ© μ€μ΄λ€λμ μν μκ°.
μ΄μ§νΈλ¦¬(binary search)λ‘ μλ₯Ό λ€μ΄λ³΄λ©΄,
μ΄μ§νΈλ¦¬λ Nκ°μ μ λ ¬λ μμκ° λ€μ΄μλ λ°°μ΄μ λ°μ© μ€μ¬κ°λ©° κ²μκ°μ μ°Ύλ€κ°, νμν΄μΌ ν μμκ° νλλ§ λ¨μΌλ©΄ μ’ λ£νλ νΉμ§μ΄ μμΌλ―λ‘
μνμκ°μ Nμ μ λ°μ© λλλ κ³Όμ μμ, λͺλ¨κ³ λ§μ 1μ΄ λλμ§μ λ°λΌ κ²°μ λλ€.
N = 16μΌ κ²½μ°,
N = 8
N = 4
N = 2
N = 1
μΈλ°, μμλ₯Ό λ€μ§μ΄μ 1μμ 16μΌλ‘ μ¦κ°νλ κ²μΌλ‘ μκ°ν΄λ³΄λ©΄ μννμλ $2^k = 16$ μ kμ΄λ€.
μ΄λ $2^k = 16$μ λ§μ‘±νλ kκ°μ ꡬν΄μ£Όλ κ²μ΄ λ°λ‘ log.
$2^k = 16$
$log_216 = k$
$log_22^4 = k$
$4 = k$
λ°λΌμ μ΄μ§νμμ μνμκ°μ
$2^k = N$
$log_2N= k$
λ‘ κ΅¬ν μ μκ³ , μκ°λ³΅μ‘λλ‘ νννλ©΄ $O(logN)$μ΄ λλ€.
μ¬κ·μ μΌλ‘ μν μκ° κ΅¬νκΈ°
μ¬κ·ν¨μμ μνμκ°μ λ³΄ν΅ $O(λΆκΈ°^{κΉμ΄})$λ‘ ννλλ€.
(*λΆκΈ°(branch) : μ¬κ·ν¨μκ° μμ μ μ¬νΈμΆνλ νμ)
μμ λ° μ°μ΅λ¬Έμ
(κΈΈμ΄μ μ μ΄λμ΅λλ€)
μ°Έκ³ μ¬μ΄νΈ : https://ledgku.tistory.com/33
μ΄λ―Έμ§ μΆμ² : http://rapapa.net/?p=3382
μ°Έκ³ λ¬Έμ : μ½λ© μΈν°λ·° μμ λΆμ : 187κ°μ§ νλ‘κ·Έλλ° λ¬Έμ μ ν΄λ²
'βοΈ μ΄λ‘ > μ΄λ‘ , μ€κ³' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκΈ°μ©μμ½/κ°μΈμ 리] λ€νΈμν¬(HTTP~Socket) (0) | 2019.07.30 |
---|---|
[μκΈ°μ©μμ½/κ°μΈμ 리] λ€νΈμν¬(OSI7κ³μΈ΅~TCP/IP) (0) | 2019.07.28 |