🧭 λΉ…μ˜€ ν‘œκΈ°λ²•

may_soouuΒ·2021λ…„ 1μ›” 2일
1
post-thumbnail

μ•Œκ³ λ¦¬μ¦˜μ—μ„œμ˜ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 주둜 λΉ…μ˜€ ν‘œκΈ°λ²•(Big-o)을 μ‚¬μš©ν•˜μ—¬ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
μ‹œκ°„ λ³΅μž‘λ„ : μ‹œκ°„μ΄ μ–Όλ§ˆλ‚˜ 걸리냐λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것

O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(2^n) < O(n!)

1. O(1)

μž…λ ₯ λ°μ΄ν„°μ˜ μ–‘κ³Ό 상관없이 μ‹€ν–‰ μ‹œκ°„μ΄ μΌμ •ν•©λ‹ˆλ‹€.
ex. ν•΄μ‹œ ν…Œμ΄λΈ”μ˜ 쑰회 및 μ‚½μž…

2. O(log n)

데이터 양이 λ§Žμ•„μ Έλ„ μ‹œκ°„μ€ μ‘°κΈˆμ”©λ§Œ μ¦κ°€ν•©λ‹ˆλ‹€.
μ‹œκ°„μ— λΉ„λ‘€ν•˜μ—¬ 탐색 κ°€λŠ₯ν•œ 데이터양이 2의 n승이 λ©λ‹ˆλ‹€.
μ΄λŠ” 주둜 큰 문제λ₯Ό μΌμ •ν•œ 크기λ₯Ό κ°–λŠ” μž‘μ€ 문제둜 μͺΌκ°€ λ•Œ λ‚˜νƒ€λ‚˜λŠ” μœ ν˜•μž…λ‹ˆλ‹€.
ex. 이진 검색 ( κ°€μš΄λ°μ— μœ„μΉ˜ν•œ κ°’κ³Ό 찾고자 ν•˜λŠ” κ°’ λΉ„κ΅ν•˜λ©΄μ„œ κ°€μš΄λ° 값을 λ°”κΏ”κ°€λŠ” 방법)

3. O(n)

데이터양과 μ‹œκ°„μ΄ μ •λΉ„λ‘€ν•©λ‹ˆλ‹€.
ex. for 문을 ν†΅ν•œ 탐색, 리슀트 순회 λ“±

4. O(n log n)

데이터 양이 n만큼 λ§Žμ•„μ§€λ©΄ μ‹€ν–‰ μ‹œκ°„μ€ nλ°° 보닀 쑰금 더 λ§Žμ•„μ§‘λ‹ˆλ‹€.
큰 문제λ₯Ό 독립적인 μž‘μ€ 문제둜 μͺΌκ°œμ–΄, λ…λ¦½μ μœΌλ‘œ ν•΄κ²° ν›„ λ‹€μ‹œ ν•˜λ‚˜λ‘œ λͺ¨μœΌλŠ” κ²½μš°μ— λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
ex. 퀡 μ •λ ¬, 병합 μ •λ ¬ λ“±

5. O(N^k)

데이터 양에 따라 κ±Έλ¦¬λŠ” μ‹œκ°„μ€ μ œκ³±μ— λΉ„λ‘€ν•©λ‹ˆλ‹€.(효율이 쒋지 μ•ŠμŒ)
ex. n번 μˆœνšŒν•˜λŠ” λ°˜λ³΅λ¬Έμ„ k번 쀑첩

profile
back-end 개발자

0개의 λŒ“κΈ€