์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด "๊ฐ์ฅ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ" ํ์
→ ํจ์จ์ ์ผ๋ก ํธ๋ ๊ฒ์ ์ ํ ์๊ฐ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ํธ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ
์๊ณ ๋ฆฌ์ฆ ์ํ ์๊ฐ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ
1) ์ ๋ ์๊ฐ ์ธก์ : ๋ง ๊ทธ๋๋ก ์๊ฐ ์ธก์
2) ์๊ฐ ๋ณต์ก๋ ์ธก์ : ์๊ณ ๋ฆฌ์ฆ ์์ ์๊ฐ๋ถํฐ ๊ฒฐ๊ด๊ฐ์ด ๋์ฌ ๋๊น์ง์ ์ฐ์ฐ ํ์ ์ธก์
- ์ ๋ ฅ ํฌ๊ธฐ : ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ๋ค์ํ๋ฉฐ ์ด์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก N์ผ๋ก ์ผ๋ฐํ
- ์ธก์ ๊ฒฐ๊ณผ : ์ต์ (best) / ๋ณดํต(normal) / ์ต์ (worst)
- ํํ ๋ฐฉ์ : ์ ๊ทผ ํ๊ธฐ๋ฒ์ผ๋ก ์ฌ์ฉ
์๊ฐ ๋ณต์ก๋ (Time Complexity)
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ๋ด๋ ์งํ๋ก ์ ๋ ฅ ํฌ๊ธฐ์ ๋ํ ์ฐ์ฐ ํ์
ex) 1์ฐจ์ ๋ฐฐ์ด ๊ฒ์
- ๊ฐ์ ๊ฐ์ฅ ๋นจ๋ฆฌ ์ฐพ๋ ๊ฒฝ์ฐ : ๊ฒ์ ์์ ์์น์ ์ฐพ์ ๊ฐ์ด ๋ฐ๋ก ์์นํ ๊ฒฝ์ฐ
- ๊ฐ์ ๊ฐ์ฅ ๋ฆ๊ฒ ์ฐพ๋ ๊ฒฝ์ฐ : ์ฐพ์ผ๋ ค๋ ๊ฐ์ด ์๊ฑฐ๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์นํ ๊ฒฝ์ฐ
์ ๊ทผ์ ํ๊ธฐ๋ฒ
์ ๋ ฅ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์ฐ์ฐ ํ์์ ์ถ์ด๋ฅผ ํ์ฉํด ์๊ฐ ๋ณต์ก๋ ํํ
- ๋น
์ค(Big-O, O) ํ๊ธฐ๋ฒ : ์ต์
์ผ ๋ ์ฐ์ฐํ์ (์ํ์๊ฐ์ ์ํ) โ
์ฃผ๋ก ์ฌ์ฉ โ
- ๋ชจ๋ ์ผ์ด์ค๋ฅผ ํต๊ณผํด์ผํ๋ฏ๋ก ์ฃผ๋ก ์ต์ ์ ๊ฒฝ์ฐ์ธ ๋น ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐ
- ๋น ์ค๋ฉ๊ฐ(Big-Omega, Ω) ํ๊ธฐ๋ฒ : ์ต์ ์ผ ๋ ์ฐ์ฐํ์ (์ํ์๊ฐ์ ํํ)
- ๋น ์ธํ(Big Theta, Θ) ํ๊ธฐ๋ฒ : ๋ณดํต์ผ ๋ ์ฐ์ฐํ์ (์ํ์๊ฐ์ ์ํ๊ณผ ํํ)
๋น ์ค ํ๊ธฐ๋ฒ์ ์ข ๋ฅ
1. O(1) : ์์
์ ๋ ฅ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ์๊ด์์ด ์ผ์ ํ ์๊ฐ ์์
ex) ์คํ์ Push / Pop
2. O(log N) : ๋ก๊ทธ
์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ฒ๋ฆฌ ์๊ฐ ๊ฐ์
ex) ์ด์งํธ๋ฆฌ / ์๊ธฐ๋ฅ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ฌ๊ท
3. O(N) : ์ ํ
์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋น๋กํด ์ฒ๋ฆฌ ์๊ฐ ์ฆ๊ฐ (Nํฌ๊ธฐ๋งํผ ์ฒ๋ฆฌ ์๊ฐ ์ฆ๊ฐ)
ex) for๋ฌธ
4. O(N log N) : ์ ํ ๋ก๊ทธ
์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์ฒ๋ฆฌ ์๊ฐ์ด ๋ก๊ทธ์ ๋ฐฐ๋งํผ ์ฆ๊ฐ
ex) ํต ์ ๋ ฌ(Quick Sort) / ํฉ๋ณ ์ ๋ ฌ(Merge Sort) / ํ ์ ๋ ฌ(Heap Sort)
5. O( N² ) : ๋คํญ
์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ N๋งํผ ๋ฐ๋ณตํ๊ณ ๊ทธ ์์์๋ N๋งํผ ๋ฐ๋ณตํ์ฌ ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ
ex) ์ฝ์ ์ ๋ ฌ(Insertion Sort) / ๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort) / ์ ํ ์ ๋ ฌ(Selection Sort) / ์ด์ค for๋ฌธ
6. O( 2โฟ ) : ์ง์
์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ
ex) ํผ๋ณด๋์น(Fibonacci) ์์ด
โป ์ฐธ๊ณ ์๋ฃ โป
'๊ณต๋ถ ๐ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ (4) ํด์ (0) | 2024.07.08 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ (3) ํ (0) | 2024.07.02 |
[์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ (2) ์คํ (0) | 2024.06.25 |
[์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ (1) ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ (0) | 2024.06.21 |
[์๊ณ ๋ฆฌ์ฆ] ์ค๋น ์ฌํญ (0) | 2024.06.17 |