Big-o.md
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ฅผ ํ๋ฉด์ ํจ์จ์ฑ์ ํ ์คํธํ ๋ ์ฝ๋์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ตฌํด ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์งค ์ ์๋๋ก ํ๊ธฐ ์ํด์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณต๋ถํด๋ณด๊ฒ ๋ค.
์๊ณ ๋ฆฌ์ฆ
์ด๋ค ๋ชฉ์ ์ ๋ฌ์ฑํ๊ฑฐ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ด๊ธฐ ์ํด ๊ฑฐ์ณ์ผ ํ๋ ์ผ๋ จ์ ๊ณผ์ ๋ค
ํ๊ฐ์ง ์ํฉ์ ๋ํด ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์์ง๋ง ๊ฐ์ฅ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ๊ธฐ ์ํด ์๊ฐ๋ณต์ก๋๊ฐ ๊ฐ์ฅ ๋ฎ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด ์ฌ์ฉํ๋ค.
์ฆ, ํน์ ์ํฉ์์ ๊ฐ์ฅ ๋น ๋ฅธ ์คํ์๋๋ฅผ ๊ฐ์ง๋ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๊ตฌํ๋ ๊ฒ์ด๋ค.
์๊ณ ๋ฆฌ์ฆ์ ์คํ์๊ฐ
์ ๋ ฅ๊ฐ์ ํฌ๊ธฐ
์ ๋ ฅ๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ํจ์์ ์ฆ๊ฐ๋ -> ์ฑ์ฅ๋ฅ
์ด๋ ์ค์ํ์ง ์์ ์์๋ค๊ณผ ๊ณ์๋ฅผ ์ ๊ฑฐํ๋ฉด ์ค์ํ ์ฑ์ฅ๋ฅ ์ ์ง์คํ ์ ์๋๋ฐ ์ด๊ฒ์ ์ ๊ทผ์ ํ๊ธฐ๋ฒ-Asymptotic notation ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ ๊ทผ์ ํ๊ธฐ๋ฒ์ ์ข ๋ฅ
์ต์์ ๊ฒฝ์ฐ - ์ค๋ฉ๊ฐ ํ๊ธฐ๋ฒ
ํ๊ท ์ ๊ฒฝ์ฐ - ์ธํ ํ๊ธฐ๋ฒ
์ต์ ์ ๊ฒฝ์ฐ - ๋น ์ค ํ๊ธฐ๋ฒ
ํ๊ท ์ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ฉด ์ ํํ๊ณ ์ข๊ฒ ์ง๋ง ํ๊ฐํ๊ธฐ ๊น๋ค๋กญ๋ค, ๊ทธ๋์ ์ต์ ์ ๊ฒฝ์ฐ์ธ ๋น ์ค๋ฅผ ์ฌ์ฉํ๋๋ฐ ์๊ณ ๋ฆฌ์ฆ์ด ์ต์ ์ผ ๋์ ๊ฒฝ์ฐ๋ฅผ ํ๋จํ๋ฉด ํ๊ท ๊ณผ ๊ฐ๊น์ด ์ฑ๋ฅ์ผ๋ก ์์ธกํ ์ ์๋ค.
์ด์ ๋ถํฐ ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
๋น
์ค ํ๊ธฐ๋ฒ - Big-O
๋น ์ค ํ๊ธฐ๋ฒ์ ๋ถํ์ํ ์ฐ์ฐ์ ์ ๊ฑฐํ์ฌ ์๊ณ ๋ฆฌ์ฆ ๋ถ์์ ์ฝ๊ฒ ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก๋ ์๊ฐ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋๋ฅผ ์ธก์ ํ ์ ์๋ค.
์๊ฐ ๋ณต์ก๋ - ์ ๋ ฅ๋ N์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์คํ๋๋ ์กฐ์์ ์, ์ฆ ์ฐ์ฐํ๋ ํ์
๊ณต๊ฐ ๋ณต์ก๋ - ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋ ๋ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ -> HW์ ๋ฐ์ ์ผ๋ก ์ค์๋๊ฐ ๋จ์ด์ง
์๊ฐ ๋ณต์ก๋
์๊ณ ๋ฆฌ์ฆ์ ์ํํ๊ธฐ ์ํด ํ๋ก์ธ์ค๊ฐ ์ํํด์ผ ํ๋ ์ฐ์ฐ์ ์
์ ์คํ์๊ฐ์ผ ์๋ ์ฐ์ฐ์์น์ผ๊น? ์คํ์๊ฐ์ HW์ ์ฑ๋ฅ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ข ๋ฅ ๋ฑ ์ํฉ์ ๋ฐ๋ผ ํธ์ฐจ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๋ช ๋ น์ด์ ์คํ ํ์๋ง์ ๊ณ ๋ คํ๋ ๊ฒ์ด๋ค.
์๊ฐ๋ณต์ก๋์์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋ฐ๋ก ๐ก N์ ๋จ์์ด๋ค.
์๋ฃ์ ๊ฐ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ฐจ์๊ฐ ๊ฐ์ฅ ํฐ ํญ, ์ฆ ์ต๊ณ ์ฐจํญ์ด ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ผ์น๊ธฐ ๋๋ฌธ์ big-Oํ๊ธฐ๋ฒ์์๋ ๊ฐ์ฅํฐ ์ฐจ์๋ง์ ๋ํ๋ธ๋ค.
์ฝ๋์์ ์๊ฐ๋ณต์ก๋ ๊ตฌํ๊ธฐ
์๋์ ์ฝ๋๋ฅผ ํตํด ์๊ฐ๋ณต์ก๋๋ฅผ ๊ตฌํด๋ณด์
sum = 0
=> 1
int i=0
=> 1
i++
=> n
sum+=i
=> n -> 1+1+n+n => 2n + 2 ์์ ์ต๊ณ ์ฐจํญ์ด 2n์ด๊ธฐ๋๋ฌธ์ O(2n+2) => O(n) ์ด ์ฝ๋์ ์๊ฐ ๋ณต์ก๋๋ฅผ big-Oํ๊ธฐ๋ฒ์ผ๋ก ํ๊ธฐํ๋ฉด O(n)์ด๋ค.
์๊ฐ๋ณต์ก๋ ๊ตฌํ๋ tip
ํ๋์ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์์ ์งํฉ์ ๋ฐ๋ณต ํ๋ ๊ฒฝ์ฐ : O (n)
์ปฌ๋ ์ ์ ์ ๋ฐ ์ด์ ์ ๋ฐ๋ณต ํ๋ ๊ฒฝ์ฐ : O (n / 2) -> O (n)
๋ ๊ฐ์ ๋ค๋ฅธ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๊ฐ๋ณ ์ฝ๋ ์ ์ ๋ฐ๋ณต ํ ๊ฒฝ์ฐ : O (n + m) -> O (n)
๋ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ปฌ๋ ์ ์ ๋ฐ๋ณตํ๋ ๊ฒฝ์ฐ : O (nยฒ)
๋ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๋ค๋ฅธ ์ฝ๋ ์ ์ ๋ฐ๋ณต ํ ๊ฒฝ์ฐ : O (n * m) -> O (nยฒ)
์ปฌ๋ ์ ์ ๋ ฌ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ : O(n*log(n))
Last updated