π Computer Science/Data Structure
[μλ£κ΅¬μ‘°] Time Complexity (μκ° λ³΅μ‘λ)
hyebin (Helia)
2023. 3. 7. 17:10
λ°μν
Time Complexity (μκ° λ³΅μ‘λ)
- μ»΄ν¨ν° νλ‘κ·Έλ¨μ μ λ ₯κ°κ³Ό μ°μ° μν μκ°μ μκ΄κ΄κ³λ₯Ό λνλ΄λ μ²λ
- λ¬Έμ λ₯Ό ν΄κ²°νλ λ° κ±Έλ¦¬λ μκ°κ³Ό μ λ ₯μ ν¨μ κ΄κ³
- μκ³ λ¦¬μ¦μ λ‘μ§μ΄ μΌλ§λ μ€λ μκ°μ΄ 걸리λμ§ λνλ΄λ λ° μ¬μ©
- μκ³ λ¦¬μ¦μ λ‘μ§μ μ½λλ‘ κ΅¬νν λ, ν¨μ¨μ μΌλ‘ ꡬννκΈ°μν΄ κ³ λ €ν΄μΌ ν¨
- ν¨μ¨μ μΈ μκ³ λ¦¬μ¦ κ΅¬ν: μ λ ₯κ°μ΄ 컀μ§μ λ°λΌ μ¦κ°νλ μκ°μ λΉμ¨μ μ΅μνν μκ³ λ¦¬μ¦μ ꡬμ±
- μ£Όλ‘ λΉ -μ€ νκΈ°λ²μ μ¬μ©ν΄ λνλ
μκ° λ³΅μ‘λλ₯Ό νκΈ°νλ λ°©λ²
- Big-O(Big-Oh, λΉ -μ€) ⇒ μν μ κ·Ό, μ΅μ μ κ²½μ°μ λν΄ λνλ΄λ λ°©λ²
- Big-Ω(Big-Omega, λΉ -μ€λ©κ°) ⇒ νν μ κ·Ό, μ΅μ μ κ²½μ°μ λν΄ λνλ΄λ λ°©λ²
- Big-θ(Big-Theta, λΉ -μΈν) ⇒ λΉ μ€μ λΉ μ€λ©κ°μ 곡ν΅λΆλΆ, μ΅μμ μ΅μ μ μ€κ°μΈ νκ· μ μΈ λ³΅μ‘λ
Big-O νκΈ°λ²
- μ λ ₯ λ²μ nμ κΈ°μ€μΌλ‘ ν΄μ λ‘μ§μ΄ λͺ λ² λ°λ³΅λλμ§ λνλ΄λ νκΈ°λ²
- ‘μ λ ₯κ°μ λ³νμ λ°λΌ μ°μ°μ μ€νν λ, μ°μ° νμμ λΉν΄ μκ°μ΄ μΌλ§λ§νΌ 걸리λκ°?’λ₯Ό νκΈ°νλ λ°©λ²
Big-O νκΈ°λ²μ μ’ λ₯
- O(1)
- μΌμ ν 볡μ‘λ(constant complexity)λΌκ³ νλ©°, μ λ ₯κ°μ΄ μ¦κ°νλλΌλ μκ°μ΄ λμ΄λμ§ μμ
- μ λ ₯κ°μ ν¬κΈ°μ κ΄κ³μμ΄, μ¦μ μΆλ ₯κ°μ μ»μ΄λΌ μ μμ
- O(n)
- μ ν 볡μ‘λ(linear complexity)λΌκ³ λΆλ₯΄λ©°, μ λ ₯κ°μ΄ μ¦κ°ν¨μ λ°λΌ μκ° λν κ°μ λΉμ¨λ‘ μ¦κ°νλ κ²μ μλ―Έ
- μ λ ₯κ°μ΄ 컀μ§λ©΄ 컀μ§μλ‘ κ³μ(n μμ μλ μ)μ μλ―Έκ° μ μ μμ΄μ§κΈ° λλ¬Έμ, κ°μ λΉμ¨λ‘ μ¦κ°νκ³ μλ€λ©΄ 2λ°°κ° μλ 5λ°°, 10λ°°λ‘ μ¦κ°νλλΌλ O(n)μΌλ‘ νκΈ°
- O(log n)
- λ‘κ·Έ 볡μ‘λ(logarithmic complexity)λΌκ³ λΆλ₯΄λ©°, Big-OνκΈ°λ²μ€ O(1) λ€μμΌλ‘ λΉ λ₯Έ μκ° λ³΅μ‘λ
- O(n2)
- 2μ°¨ 볡μ‘λ(quadratic complexity)λΌκ³ λΆλ₯΄λ©°, μ λ ₯κ°μ΄ μ¦κ°ν¨μ λ°λΌ μκ°μ΄ nμ μ κ³±μμ λΉμ¨λ‘ μ¦κ°νλ κ²μ μλ―Έ
- n3κ³Ό n5 λ λͺ¨λ O(n2)λ‘ νκΈ°
- O(2n)
- κΈ°νκΈμμ 볡μ‘λ(exponential complexity)λΌκ³ λΆλ₯΄λ©°, Big-O νκΈ°λ² μ€ κ°μ₯ λλ¦° μκ° λ³΅μ‘λ
μλ£κ΅¬μ‘°μμμ μκ° λ³΅μ‘λ
μλ£ κ΅¬μ‘°μ νκ· μκ° λ³΅μ‘λ
μλ£ κ΅¬μ‘° | μ κ·Ό | νμ | μ½μ | μμ |
λ°°μ΄ (Array) | O(1) | O(n) | O(n) | O(n) |
μ€ν (Stack) | O(n) | O(n) | O(1) | O(1) |
ν (Queue) | O(n) | O(n) | O(1) | O(1) |
μ΄μ€ μ°κ²° 리μ€νΈ (Double Linked List) | O(n) | O(n) | O(1) | O(1) |
ν΄μ ν μ΄λΈ (Hash Table) | O(1) | O(1) | O(1) | O(1) |
μ΄μ§ νμ νΈλ¦¬ (BST) | O(log n) | O(log n) | O(log n) | O(log n) |
AVL νΈλ¦¬ | O(log n) | O(log n) | O(log n) | O(log n) |
λ λ λΈλ νΈλ¦¬ | O(log n) | O(log n) | O(log n) | O(log n) |
μλ£ κ΅¬μ‘°μ μ΅μ μ μκ° λ³΅μ‘λ
μλ£ κ΅¬μ‘° | μ κ·Ό | νμ | μ½μ | μμ |
λ°°μ΄ (Array) | O(1) | O(n) | O(n) | O(n) |
μ€ν (Stack) | O(n) | O(n) | O(1) | O(1) |
ν (Queue) | O(n) | O(n) | O(1) | O(1) |
μ΄μ€ μ°κ²° 리μ€νΈ (Double Linked List) | O(n) | O(n) | O(1) | O(1) |
ν΄μ ν μ΄λΈ (Hash Table) | O(n) | O(n) | O(n) | O(n) |
μ΄μ§ νμ νΈλ¦¬ (BST) | O(n) | O(n) | O(n) | O(n) |
AVL νΈλ¦¬ | O(log n) | O(log n) | O(log n) | O(log n) |
λ λ λΈλ νΈλ¦¬ | O(log n) | O(log n) | O(log n) | O(log n) |
λ°μν