๋น ์คํ๊ธฐ๋ฒ Big-O
๋น ์คํ๊ธฐ๋ฒ์ด๋?
์ ๋ ฅ ๋ฒ์ n์ ๊ธฐ์ค์ผ๋ก ๋ก์ง์ด ๋ช ๋ฒ ๋ฐ๋ณต๋๋์ง ๋ํ๋ด๋ ๊ฒ
์ ์ฌ์ฉํ ๊น??
์๋ฅผ ๋ค์ด์ <1๋ถํฐ N๊น์ง์ ํฉ์ ๊ตฌํ๋ ํจ์๋ฅผ ๊ตฌํด๋ณด์>๋ผ๊ณ ํ์ ๊ฒฝ์ฐ
์์ 1)
function add(n){
let sum = 0;
for(let i=1; i<=n; i++){
sum += i;
}
return sum;
}
์์ 2)
function add(n){
return n*(n+1) / 2;
}
์ด๋ ๊ฒ ๋ค์ํ ๊ตฌํ ๋ฐฉ๋ฒ์ด ๋์ฌ ์ ์๋ค.
์ด๋ด ๊ฒฝ์ฐ ์ด๋ค ๊ฒ ๋ ์ข์ ๋ฐฉ๋ฒ์ธ์ง ๊ธฐ์ค์ด ๋ช ํํ์ง ์๋ค. ๐ฎ๐จ
๊ฐ ๊ฐ์ ๊ธฐ๊ธฐ์ ํ๊ฒฝ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ ํํ ์๊ฐ์ ๋น๊ตํ๊ธฐ ์ฝ์ง ์์๊ณ
์ฝ๋๋ง ๋ณด๊ณ ํ๋จํ๊ธฐ ์ํด ๋น ์คํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋์๋ค.
์ด๋ป๊ฒ ์ฌ์ฉํ ๊น??
์ฐ์ฐ ํ์๊ฐ ๋คํญ์์ผ๋ก ํํ๋ ๊ฒฝ์ฐ,
์ต๊ณ ์ฐจํญ์ ์ ์ธํ ๋ชจ๋ ํญ๊ณผ ์ต๊ณ ์ฐจํญ์ ๊ณ์๋ฅผ ์ ์ธ์์ผ ๋ํ๋ธ๋ค.
์์)
n^2 + 2n +1์ ์ฑ๋ฅ์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๋ฉด? ๐ O(n^2)
2n์ ์ฑ๋ฅ์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๋ฉด? ๐ O(n)
์ฆ, ์ต๊ณ ์ฐจํญ์ด ๊ฐ์ฅ ์ค์ํ๋ค!!