πŸ€– Computer Science/Algorithm

μ•Œκ³ λ¦¬μ¦˜ λ³΅μž‘λ„ ν‘œκΈ°λ²•

yesolz 2024. 4. 30. 17:09
728x90

컴퓨터 κ³Όν•™μ—μ„œλŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ λ³΅μž‘λ„λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데 $$T(n), O, \Theta, \Omega$$ λ“±μ˜ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•œλ‹€. μ΄λŸ¬ν•œ ν‘œκΈ°λ²•μ€ μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹€ν–‰ μ‹œκ°„μ΄λ‚˜ 곡간 μš”κ΅¬μ‚¬ν•­μ˜ μƒν•œ, ν•˜ν•œ, λ˜λŠ” μ •ν™•ν•œ 경계λ₯Ό μ§€μ •ν•œλ‹€. μ΄λŸ¬ν•œ ν‘œκΈ°λ²•μ„ λΉ… 였 ν‘œκΈ°λ²•μ΄λΌκ³ λ„ ν•˜λ©°, 각각은 λ‹€μŒκ³Ό 같은 의미λ₯Ό 가진닀.

  • Big O ν‘œκΈ°λ²• (O): ν•¨μˆ˜μ˜ μƒν•œμ„ μ„€λͺ…ν•œλ‹€. ( O(g(n)) )은 ν•¨μˆ˜ ( f(n) )이 ( c \times g(n) )을 μ΄ˆκ³Όν•˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•œλ‹€. μ΄λŠ” 주둜 μ΅œμ•…μ˜ 경우 μ„±λŠ₯을 λ‚˜νƒ€λ‚΄λŠ” 데 μ‚¬μš©λœλ‹€.

  • Theta ν‘œκΈ°λ²• ((\Theta)): ν•¨μˆ˜μ˜ μ •ν™•ν•œ μ„±μž₯λ₯ μ„ λ‚˜νƒ€λ‚Έλ‹€. ( \Theta(g(n)) )은 ( f(n) )이 ( c_1 \times g(n) )κ³Ό ( c_2 \times g(n) ) 사이에 μ‘΄μž¬ν•¨μ„ μ˜λ―Έν•œλ‹€. 즉, ( f(n) )은 ( g(n) )κ³Ό μ •ν™•νžˆ λ™μΌν•œ μ„±μž₯λ₯ μ„ 가진닀. μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 일반적인 κ²½μš°μ— μ–΄λ–€ μ„±λŠ₯을 보일지λ₯Ό μ„€λͺ…ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.

  • Omega ν‘œκΈ°λ²• ((\Omega)): ν•¨μˆ˜μ˜ ν•˜ν•œμ„ μ„€λͺ…ν•œλ‹€. ( \Omega(g(n)) )은 ( f(n) )이 ( c \times g(n) ) μ΄μƒμž„μ„ μ˜λ―Έν•œλ‹€. μ΄λŠ” 주둜 μ΅œμ„ μ˜ 경우 μ„±λŠ₯을 λ‚˜νƒ€λ‚΄λŠ” 데 μ‚¬μš©λœλ‹€.

예λ₯Ό λ“€μ–΄, 병합 μ •λ ¬μ˜ 경우 μ΅œμ•…μ˜ κ²½μš°μ—λ„ ( O(n \log n) )이고, ν‰κ· μ μœΌλ‘œλ„ ( \Theta(n \log n) )이닀. μ΄λŠ” 병합 정렬이 ( n \log n )의 μƒν•œκ³Ό ν•˜ν•œμ„ λͺ¨λ‘ 가지며, 일반적으둜 이 μ„±μž₯λ₯ μ„ μœ μ§€ν•œλ‹€λŠ” μ˜λ―Έμ΄λ‹€. 반면, μ΅œμ„ μ˜ 경우 λΉ λ₯Έ μ •λ ¬(Quick Sort)은 ( \Omega(n \log n) )이고, μ΅œμ•…μ˜ κ²½μš°λŠ” ( O(n^2) )이닀.

λ”°λΌμ„œ, ( \Theta ) ν‘œκΈ°λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ μ„±λŠ₯이 μ–΄λŠ 정도 μΌκ΄€μ μœΌλ‘œ νŠΉμ • ν•¨μˆ˜μ˜ μ„±μž₯λ₯ μ„ λ”°λ₯Έλ‹€κ³  말할 λ•Œμ΄λ‹€. ( O ) ν‘œκΈ°λŠ” 일반적으둜 μ΅œμ•…μ˜ 경우λ₯Ό μ˜λ―Έν•˜λ―€λ‘œ, μ •ν™•ν•œ μ„±λŠ₯ 츑정을 μœ„ν•΄ ( \Theta )λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 더 μ μ ˆν•  수 μžˆλ‹€.

728x90