๐งฉ <์ฝ๋ฉํ ์คํธ ํฉ๊ฒฉ์ ๋๊ธฐ: ํ์ด์ฌ ํธ> 1๋ ์คํฐ๋ ๊ธฐ๋ก์ ๋๋ค.
๋ฌธ์ ๋ฅผ ๋ถ์ํ์ฌ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ตฌํ ๋ค์ ๋ฌธ์ ์ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ ์ฐพ์ ์ ์๋ค.
์๊ฐ ๋ณต์ก๋(time complexity)
์๊ณ ๋ฆฌ์ฆ ์ํ ์๊ฐ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์๋ ์ ๋ ์๊ฐ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ธก์ ํ๋ ๋ฐฉ๋ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค. ์ ๋ ์๊ฐ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ํธ์ฐจ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ฝ๋ฉ ํ ์คํธ์์๋ ์ ํ์ฉํ์ง ์๋๋ค.
์๊ฐ ๋ณต์ก๋๋ ์ด๋ป๊ฒ ์ธก์ ํ๋๊ฐ?
์ ๋ ฅ ํฌ๊ธฐ์ ๋ํด ์๊ณ ๋ฆฌ์ฆ์ด ์์ํ ์๊ฐ๋ถํฐ ๊ฒฐ๊ด๊ฐ์ด ๋์ฌ ๋๊น์ง์ ์ฐ์ฐ ํ์๋ฅผ ์ธก์ ํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ธก์ ๊ฒฐ๊ณผ๋ฅผ ์ต์ , ๋ณดํต, ์ต์ ์ ๊ฒฝ์ฐ๋ก ๋๋ ์ ์๋ค. ๊ฒฐ๊ด๊ฐ์ด ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์ต์ ์ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ฆ๊ฒ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์ต์ ์ ๊ฒฝ์ฐ์ด๋ค. ์ฆ ์๊ฐ๋ณต์ก๋๊ฐ ๋ฎ์ ์๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ด ๋๋ค.
์ ๊ทผ์ ํ๊ธฐ๋ฒ
์๊ฐ ๋ณต์ก๋๋ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ํ ์ฐ์ฐ ํ์๋ผ๊ณ ํ๋ค. ์ด ๋ ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ํ์ค์ ํน์ ์ผ์ด์ค์ ์์กดํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์๋ค. ์๊ฐ ๋ณต์ก๋๋ฅผ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์ฐ์ฐ ํ์์ ์ถ์ด๋ก ํํํ๋ ๋ฐฉ๋ฒ์ '์ ๊ทผ์ ํ๊ธฐ๋ฒ'์ด๋ผ๊ณ ํ๋ค.
๋น ์ค ํ๊ธฐ๋ฒ(big-O notation)
์ ๊ทผ์ ํ๊ธฐ๋ฒ ์ค์์๋ ์ํ์ ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฆ ์ต์ ์ ๊ฒฝ์ฐ์ ๋ํ์ฌ ์๊ฐ ๋ณต์ก๋๋ฅผ ํํํ๋ค.
์ ๋ ฅ ํฌ๊ธฐ๊ฐ $ x $, ์ฐ์ฐ ํ์๊ฐ $ f(x) $๋ผ๋ฉด $ f(x) $์ ์ฐจ์๋ ์ง์ฐ๊ณ ์ต๊ณ ์ฐจํญ๋ง ๋จ๊ฒจ $ O(...) $๋ก ํ๊ธฐํ๋ฉด ๋๋ค.
- $ 3x^{2}+5x+6 $ → $ O(x^{2}) $
- $ x+\textrm{log}x $ → $ O(x) $
- $ 2^{x}+10x^{5}+5x^{2} $ → $ O(2^{x}) $
- $ 5x^{2}-6x $ → $ O(x^{2}) $
๐ค ์ด๋ ๊ฒ ํ๊ธฐํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น?
์ผ๋จ ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ $ f(x) $ ์ ์ต์ ์ ์๊ฐ ๋ณต์ก๋๋ $ O(g(x)) $์ด๋ค.
ํน์ ์์ x ์ดํ๋ถํฐ ํญ์ $ f(x)\leqslant C*g(x) $๋ฅผ ๋ง์กฑํ๋ ์์ $ C $๊ฐ ์กด์ฌํ๋ค.
$ x $๊ฐ ๋ฌดํํ๊ฒ ์ปค์ง ๋ ์ฐจ์๋ค์ ์ํ ์ฐจ์ด๋ ๋ฌด์ํ ์ ์์ ์ ๋๋ก ์๊ธฐ ๋๋ฌธ์ ์ต๊ณ ์ฐจํญ๋ง ๋จ๊ธด๋ค. '์ง์ํจ์ > ๋คํญํจ์ > ๋ก๊ทธํจ์' ์์ผ๋ก ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๊ฒ ์ฆ๊ฐํ๋ ํจ์๋ฅผ ์ง์์ผ ํ๋ค.
์ถ๊ฐ ๋ฌธ์
๊ฐ ์์์ $f(x)$๋ผ๊ณ ํ ๋ ํน์ ์์ x ์ดํ๋ถํฐ ํญ์ $ f(x)\leqslant C*g(x) $๋ฅผ ๋ง์กฑํ๋ $C\times g(x)$๋ฅผ ์ฐพ๊ธฐ
[01] $ 3x^{2}+5x+6 $
$ 30\times x^{2} $ ๊ฐ ํน์ ์ง์ ๋ถํฐ $ 3x^{2}+5x+6 $๋ณด๋ค ํญ์ ํฌ๋ค.
[02] $ x+\textrm{log}x $
$ 2x $๊ฐ ํน์ ์ง์ ๋ถํฐ $ x+\textrm{log}x $๋ณด๋ค ํญ์ ํฌ๋ค.
๐ Reference
• ์ฝ๋ฉ ํ ์คํธ ํฉ๊ฒฉ์ ๋๊ธฐ: ํ์ด์ฌ ํธ, ๋ฐ๊ฒฝ๋ก, ๊ณจ๋ ๋๋น.
'Study > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
06. ์คํ (1) | 2024.01.21 |
---|---|
05. ๋ฐฐ์ด (1) | 2024.01.13 |
04. ์ฝ๋ฉ ํ ์คํธ ํ์ ๋ฌธ๋ฒ(Python) (3) | 2024.01.06 |