๋ณต์ก๋
์๊ฐ ๋ณต์ก๋
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ์ ๋ ฅ์ ํจ์ ๊ด๊ณ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์ด๋ ํ ์๊ณ ๋ฆฌ์ฆ์ ๋ก์ง์ด '์ผ๋ง๋ ์ค๋ ์๊ฐ'์ด ๊ฑธ๋ฆฌ๋์ง๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฐ์ด๋ฉฐ, ๋ณดํต Big-O ํ๊ธฐ๋ฒ์ผ๋ก ๋ํ๋ธ๋ค.
Big-O ํ๊ธฐ๋ฒ
์ ๋ ฅ ๋ฒ์ n์ ๊ธฐ์ค์ผ๋ก ํด์ ๋ก์ง์ด ๋ช ๋ฒ ๋ฐ๋ณต๋๋์ง ๋ํ๋ด๋ ๊ฒ
์๋ฅผ ๋ค์ด, '์ ๋ ฅ ํฌ๊ธฐ n'์ ๋ชจ๋ ์ ๋ ฅ์ ๋ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ์๊ฐ์ด 10n^2 + n์ด๋ผ๊ณ ๊ฐ์ ํ๋ค. ์ด๋์ ์๊ฐ ๋ณต์ก๋๋ O(n^2)์ด ๋๋ค.
for (int i=0; i<10; i++) {
for (int j=0; j<n; j++) {
for (int k=0; k<n; k++) {
if (true) cout << k << '\n';
}
}
}
for (int i=0; i<n; i++) {
if (true) cout << i << '\n';
}
'๊ฐ์ฅ ์ํฅ์ ๋ง์ด ๋ผ์น๋' ํญ์ ์์ ์ธ์๋ฅผ ๋นผ๊ณ ๋๋จธ์ง ํญ์ ์์ค ๊ฒ์ด๋ค. ๋ค๋ฅธ ํญ๋ค์ด ์ ๊ฒฝ ์ฐ์ผ ์ ์์ง๋ง ์ฆ๊ฐ ์๋๋ฅผ ๊ณ ๋ คํ๋ค๋ฉด ๊ทธ๋ ์ง ์๋ค. ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ฐ์ฐ๋์ด ๊ฐ์ฅ ๋ง์ด ์ปค์ง๋ ํญ์ n์ ์ ๊ณฑํญ์ด๊ณ , ๋ค๋ฅธ ๊ฒ์ ๊ทธ์ ๋นํด ๋ฏธ๋ฏธํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ๋ง ์ ๊ฒฝ ์ฐ๋ฉด ๋๋ค๋ ์ด๋ก ์ด๋ค.
์๊ฐ ๋ณต์ก๋์ ์กด์ฌ ์ด์
ํจ์จ์ ์ธ ์ฝ๋๋ก ๊ฐ์ ํ๋ ๋ฐ ์ฐ์ด๋ ์ฒ๋๊ฐ ๋๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ ํ์ํ๋ค.
๋ฒํผ์ ๋๋ฅด๊ณ ํ๋ฉด์ด ๋ํ๋๋๋ฐ ์ด ๋ก์ง์ด O(n^2)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ 9์ด๊ฐ ๊ฑธ๋ฆฐ๋ค๊ณ ํ๋ค. ์ด๋ฅผ O(n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฐ์ ํ๋ค๋ฉด 3์ด๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
์๊ฐ ๋ณต์ก๋์ ์๋ ๋น๊ต
O(1)๊ณผ O(n)์ ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์ฐจ์ด๊ฐ ๋ง์ด ๋๋ค. O(n^2)์ ๋งํ ๊ฒ๋ ์์ด ์ฐจ์ด๊ฐ ํฌ๋ค. ์ฆ, O(n^2)๋ณด๋ค๋ O(n), O(n)๋ณด๋ค๋ O(1)์ ์งํฅํด์ผ ํ๋ค.
๊ณต๊ฐ ๋ณต์ก๋
ํ๋ก๊ทธ๋จ์ ์คํ์์ผฐ์ ๋ ํ์๋ก ํ๋ ์์ ๊ณต๊ฐ์ ์
- ์ ์ ๋ณ์๋ก ์ ์ธ๋ ๊ฒ ๋ง๊ณ ๋ ๋์ ์ผ๋ก ์ฌ๊ท์ ์ธ ํจ์๋ก ์ธํด ๊ณต๊ฐ์ ๊ณ์ํด์ ํ์๋ก ํ ๊ฒฝ์ฐ๋ ํฌํจํ๋ค.
- int a[1004]์์ a ๋ฐฐ์ด์ 1004 x 4๋ฐ์ดํธ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ด๋ฐ ๊ณต๊ฐ์ ์๋ฏธํ๋ค.
์๋ฃ ๊ตฌ์กฐ์์์ ์๊ฐ ๋ณต์ก๋
์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ธ ๋ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ์๊ฐํด์ผ ํ๋ค. ๋ณดํต ์๊ฐ ๋ณต์ก๋๋ฅผ ์๊ฐํ ๋ ํ๊ท , ์ต์ ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํ๋ฉด์ ์ด๋ค.
'๐ช CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ERD์ ์ ๊ทํ ๊ณผ์ (0) | 2023.02.23 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค (DB, DataBase) (0) | 2023.02.23 |
์ง๋ฌธ ๋ฆฌ์คํธ - ๋์์ธ ํจํด (0) | 2023.01.04 |
ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจ์ด (1) | 2023.01.04 |
1. Design Pattern ๋์์ธ ํจํด (์ฑ๊ธํค, ์ต์ ๋ฒ, MVC, MVVM ๋ฑ) (0) | 2023.01.04 |