์๊ฐ๋ณต์ก๋๋?
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ค์ ๋ก ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์๋๋ผ, ์ด ์๊ณ ๋ฆฌ์ฆ์ด ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์์ ๋ฐ๋ผ ์ผ๋ง๋ ๋ง์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋์ง์ ๋น์จ์ ๋งํ๋ค.
๋น ์ค(Big-O) ๋?
์๊ฐ ๋ณต์ก๋๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ ์ค ๋ํ์ ์ผ๋ก ์ฐ์ด๋ ํ๊ธฐ๋ฒ์ด๋ค. ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ n์ด๋ผ๊ณ ํ๋ฉด O(n) ๊ฐ์ด ํ๊ธฐํ๋ค.
์ฐธ๊ณ ๋ก, 10๊ฐ, 100๊ฐ ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ฐจ์ด๋ ๋ฏธ๋ฏธํ๋ค. ํ์ง๋ง, 100000๊ฐ, 100000000๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ณด๋ฉด ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋์ ๋๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ์์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ๋ ๊ณ ๋ คํ์ง ์๋๋ค. ๋ ๋น ์ค๋ ๋์ถฉ ์ด๋ฐ ๋น์จ๋ก ์ฆ๊ฐํ ๊ฒ์ด๋ค~ ๋ผ๋ ์๋ฏธ์์ ์ฌ์ฉ๋๋ฏ๋ก ์ผ์ ํ๊ฒ ์ฆ๊ฐํ๋ ์์ํญ์ ์๋ฏธ๊ฐ ์์ด ํ๊ธฐํ์ง ์๋๋ค.(n*n-1 ์ด๋ n*n ์ด๋ ์๋ฏธ๋ ๊ฐ์ผ๋...)
๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ best case, average case, worst case ๊ฐ ์์ ์ ์๋ค. ๋ฐฐ์ด์ ๊ฒฝ์ฐ์ ์ ํ๊ฒ์์ ํ๋๋ฐ, ์ฒซ ๋ฒ์งธ ์นธ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด best ๊ณ ๋งจ ๋์ ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด worst ๋ค. best๋ ์ผ์ด๋ ํ๋ฅ ์ด ๊ทนํ ๋ฎ๊ณ , average ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๋ ๋ณดํต worst case ๋ก ๋งํ๋ค.
๋ํ์ ์ธ ํ๊ธฐ๋ฒ
O(1) - constance time
ํ ๋จ๊ณ๋ง ๊ฑฐ์น๋ฉด ๋๋ฏ๋ก ๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํด๋ ์ฑ๋ฅ์ ๋ณํ๊ฐ ์์.
O(n)
๋ฐ์ดํฐ๊ฐ 1๊ฐ์ฉ ์ฆ๊ฐํ ๋๋ง๋ค ๋จ๊ณ๊ฐ 1๊ฐ์ฉ ์ถ๊ฐ๋๋ค. n๊ฐ๋ฉด n๋ฒ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ ์ .
O(n*m)
n๋ฒ์ ๋จ๊ณ๊ฐ m๋ฒ ๋ฐ๋ณต๋๋ ๊ฒ.
O(n^2)
n๋ฒ์ ๋จ๊ณ๊ฐ ๊ฐ ํ์ฐจ ๋ n๋ฒ ๋ ๋ฐ๋ณต๋๋ ๊ฒ.
O(n^3)
n๋ฒ์ ๋จ๊ณ๊ฐ ๊ฐ ํ์ฐจ๋ n๋ฒ ๋ฐ๋ณต๋๋๋ฐ, ์ด ํ์ฐจ์์๋ ๋ ํ๋ฒ ๋ n๋ฒ ๋ฐ๋ณต๋๋ ๊ฒ.
O(2^n) - exponential time
ํผ๋ณด๋์น ์์ด์ ์ฌ๊ทํธ์ถ์ฒ๋ผ, ๊ฐ ๋จ๊ณ๋ 2๊ฐ์ง์ ํ์ ๋จ๊ณ๊ฐ ์๊ณ ํ์ ๋จ๊ณ๋ ๊ทธ ์๋ 2๊ฐ์ง ํ์ ๋จ๊ณ๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ. ์๋ฃ๊ตฌ์กฐ ์ค ํธ๋ฆฌ๋ฅผ ์๊ฐํด๋ณด์. ์๋๋ก ๋ด๋ ค๊ฐ ์๋ก ๋ ๋ฒจ์ ๋ฐ๋ฅธ ๋ ธ๋๋ค์ด ๋ง์์ง๋๋ฐ, ์ด์งํธ๋ฆฌ์ ๊ฒฝ์ฐ ๋ ๋ฒจ์ ๋ฐ๋ฅธ ๋ ธ๋ ๊ฐ์๋ฅผ 2^n-1 ๋ก ๊ตฌํ ์ ์์๋ค. ์์ํญ์ ๋ฒ๋ฆฐ๋ค๊ณ ํ์ผ๋ 2^n ์ผ๋ก ํ๊ธฐํ๋ ๊ฒ.
O(m^n) - expoenetial time
์ ์ฒ๋ผ ๊ฐ ๋จ๊ณ์ ํ์ ๋จ๊ณ๊ฐ m ๊ฐ๋ผ๋ฉด O(m^n) ์ผ๋ก ํํ.
O(log n)
๋จ๊ณ๋ฅผ ๊ฑฐ์น ๋๋ง๋ค ํด์ผ๋๋ ์์ ์ด ๋ฐ์ ๋ก ์ค์ด๋๋ ๊ตฌ์กฐ. ์ด์ง ๊ฒ์์ ์๊ฐํ๋ฉด ๋๋ค.
O(sqrt(n))
square root ๋ ์ ๊ณฑ๊ทผ์ ๋งํ๋ค.