λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ‹œλ„/Code-States

[D+51] μ‹œκ°„λ³΅μž‘λ„μ™€ Big-o ν‘œκΈ°λ²•

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2020. 10. 27.

 

D+51

-  μ‹œκ°„ λ³΅μž‘λ„μ™€ Big-o ν‘œκΈ°λ²• -

(μ‹œκ°„ λ³΅μž‘λ„μ™€ Big-o ν‘œκΈ°λ²•)

 


 

 

μ‹œκ°„ λ³΅μž‘λ„

μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν•΄κ²°ν•˜λ©΄μ„œ μ‹œκ°„μ΄ μ–Όλ§ˆλ‚˜ μ°¨μ§€ν•˜λŠ” 지λ₯Ό λ‚˜νƒ€λ‚Έ κ²ƒμœΌλ‘œ

이λ₯Ό λ°”νƒ•μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜μ˜ μ„±λŠ₯을 μˆ˜ν•™μ μœΌλ‘œ ν‘œν˜„ν•΄ μ€€ ν‘œκΈ°λ²•μ„ Big-oν‘œκΈ°λ²•μ΄λΌκ³  ν•œλ‹€.

 

Big-o ν‘œκΈ°λ²•

μ•Œκ³ λ¦¬μ¦˜μ˜ μ„±λŠ₯을 μˆ˜ν•™μ μœΌλ‘œ ν‘œν˜„ν•΄μ£ΌλŠ” κΈ°λ²•μœΌλ‘œ μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹œκ°„κ³Ό 곡간 λ³΅μž‘λ„λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.

 

μ΄λ•Œ, λΉ…μ˜€ν‘œκΈ°λ²•μ€ μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹€μ œ λŸ¬λ‹νƒ€μž„μ„ ν‘œμ‹œν•˜κΈ°λ³΄λ‹€λŠ”

λ°μ΄ν„°λ‚˜ μ‚¬μš©μžμ˜ μ¦κ°€μœ¨μ— λ”°λ₯Έ μ•Œκ³ λ¦¬μ¦˜μ˜ μ„±λŠ₯을 μ˜ˆμΈ‘ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜κΈ° λ•Œλ¬Έμ—

μƒμˆ˜μ™€ 같은 것듀은 1둜 바뀐닀.

 

O(1)

μž…λ ₯ λ°μ΄ν„°μ˜ 크기와 상관없이 μ–Έμ œλ‚˜ μΌμ •ν•œ μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

 

κ·Έλž˜ν”„μ²˜λŸΌ λ°μ΄ν„°μ˜ μ–‘κ³Ό 상관없이 μ‹œκ°„μ€ μΌμ •ν•˜κ²Œ κ°™λ‹€λŠ” 것을 확인할 수 μžˆλ‹€.

 

O(n)

μž…λ ₯ λ°μ΄ν„°μ˜ 크기에 λΉ„λ‘€ν•΄μ„œ μ²˜λ¦¬μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

 

λ°μ΄ν„°μ˜ 양이 λŠ˜μ–΄λ‚ μˆ˜λ‘ μ‹œκ°„λ„ λΉ„λ‘€ν•˜κ²Œ μ¦κ°€ν•˜λŠ” 것을 μ•Œ 수 μžˆλ‹€.

 

O(n2) n의 제곱

n개의 데이터λ₯Ό λ°›μœΌλ©΄ 첫 번째 λ£¨ν”„μ—μ„œ nλ²ˆμ„ λŒλ©΄μ„œ

각각의 μ—˜λ¦¬λ¨ΌνŠΈμ—μ„œ nλ²ˆμ”© 또 λŒμ•„κ°€λŠ”λ° μ΄λŠ” n이 κ°€λ‘œμ„Έλ‘œ 면적만큼 λŒμ•„κ°„λ‹€κ³  보면 λœλ‹€.

 

μ΄ˆλ°˜μ—λŠ” μ‘°κΈˆμ”© μƒμŠΉν•˜μ§€λ§Œ λ‚˜μ€‘μ—λŠ” 데이터λ₯Ό 쑰금만 좔가해도 거의 수직 μƒμŠΉν•  μ •λ„λ‘œ μ‹œκ°„μ΄ κΈ‰μ¦ν•œλ‹€.

 

이처럼 데이터가 컀질수둝 μ²˜λ¦¬μ‹œκ°„μ˜ 뢀담이 μ»€μ§€λŠ” 것을 확인할 수 μžˆλ‹€.

 

O(log n)

O(log n)은 λŒ€ν‘œμ μœΌλ‘œ BST(Binary Search Tree)κ°€ μžˆλŠ”λ°

μ›ν•˜λŠ” λ…Έλ“œ 값을 찾을 λ•Œ 루트λ₯Ό μ‹œμž‘μœΌλ‘œ ν•΄λ‹Ή 값이 루트 값보닀 μž‘μœΌλ©΄ μ™Όμͺ½, 크면 였λ₯Έμͺ½μ„ λ°”λΌλ³΄κ²Œ λœλ‹€.

 

이 κ³Όμ •μ—μ„œ μ™Όμͺ½μ΄λ‚˜ 였λ₯Έμͺ½ μ ˆλ°˜μ€ ν™•μΈν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

 

이처럼 ν•œλ²ˆ μ²˜λ¦¬κ°€ 진행될 λ•Œλ§ˆλ‹€ 검색해야 ν•˜λŠ” λ°μ΄ν„°μ˜ 양이 μ ˆλ°˜μ”© μ€„μ–΄λ“€λ©΄μ„œ μ†Œμš”μ‹œκ°„μ΄ 점차 쀄어든닀.

 

O(n)κ³Ό 비ꡐ해 λ³΄μ•˜μ„ λ•Œ 훨씬 μ‹œκ°„μ΄ 적게 λ“ λ‹€λŠ” 것을 확인할 수 μžˆλ‹€.

 

 

λ°˜μ‘ν˜•

'μ‹œλ„ > Code-States' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[D+53] Prototype Chain  (0) 2020.10.29
[D+52] 객체지ν–₯ μ–Έμ–΄ (OOP)  (0) 2020.10.28
[D+50] Graph, Tree, BST (Binary Search Tree)  (0) 2020.10.26
[D+49] Immersive 1μ£Όμ°¨  (0) 2020.10.25
[D+48] κ°•μ œνœ΄μ‹...  (0) 2020.10.24

λŒ“κΈ€