๋ฐฑ์ค์ฌ์ดํธ์์ ์๊ฐ๋ณต์ก๋๋ฅผ ๋ง์ฃผ์ณ์ ๋ฌธ์ ํ๊ธฐ์ ์ ์ ๋ฆฌ
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ๋ฅผ ์ค๋นํ ๋ O(n) ์ด๋ O(log n), O(n2) ๋ฑ์ ๋ณด๊ธดํ๋๋ฐ ์ธ์ฐ๊ธฐ์ ๊ธ๊ธํ๊ธฐ ๋๋ฌธ์...
์๊ฐ๋ณต์ก๋๋?
์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ฐ์ฐ ํ์์ ๋นํด ์๊ฐ์ ์ผ๋ง๋ ์๋ชจํ๋๊ฐ์ ๋ํ ํ๊ฐ๋ฅผ ๋งํจ.
์๊ฐ๋ณต์ก๋๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ์๋ Big-O(์ํ์ ๊ธฐ์ค), Big-โฆ(ํํ์ ๊ธฐ์ค), Big-Θ(์ด ๋์ ํ๊ท ๊ธฐ์ค)์ด ์๋ค.
๋ณดํต ๋น -์ค ํ๊ธฐ๋ฒ(Big-O)์ ์ฌ์ฉํด์ ํํํ๋ค.
๋น -์ค ํ๊ธฐ๋ฒ(Big-O)
์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ด ํด์๋ก(=๊ทธ๋ํ๊ฐ ์๋ก ์ฌ๋ผ๊ฐ์๋ก) ๋นํจ์จ์ ์ด๋ค.
๋น ์คํ๊ธฐ๋ฒ์ ์ํ์ ์ ๊ธฐ์ค = ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ ค = ์ด ์๊ฐ๊น์ง ๊ฑธ๋ฆด ์ ์๋ค
๋น ์ค ํ๊ธฐ๋ฒ์ ์ข ๋ฅ : ((ํจ์จ ์ข์)) O(1) > O(log n) > O(n) > O(n log n) > O(n^2) > O (2^n) ((ํจ์จ ๋์จ))
(์์ํจ์ > ๋ก๊ทธํจ์ > ์ ํํจ์ > ๋คํญํจ์ > ์ง์ํจ์)
1. O(1) : ์ผ์ ํ ๋ณต์ก๋๋ฅผ ๊ฐ์ง = ์ ๋ ฅ๊ฐ์ด ์ฆ๊ฐํด๋ ์๊ฐ์ ์ฆ๊ฐํ์ง ์์
ex) ์คํ Push, Pop
2. O(log n) :๋ฐ์ดํฐ๊ฐ 2๋ฐฐ๋ก ์ฆ๊ฐํ ๋, ์ฐ์ฐ์๊ฐ 1 ๋จ๊ณ ์ฉ ์ฆ๊ฐ
ex) ์ด์งํธ๋ฆฌ
3. O(n) : ๊ฐ์ ๋น์จ๋ก ๋ณต์ก๋๊ฐ ์ฆ๊ฐ
ex) for๋ฌธ
4. O(n log n)
ex) ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ
5. O(n^2) : ๋ณต์ก๋๊ฐ ์ ๊ณฑ์ผ๋ก ์ฆ๊ฐํจ
ex) ์ด์ค for๋ฌธ, ์ฝ์ ์ ๋ ฌ, ๊ฑฐํ ์ ๋ ฌ, ์ ํ ์ ๋ ฌ
6. O (2^n) : ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๋ ๋ณต์ก๋(2์ n์ ๊ณฑ๋งํผ ์ฆ๊ฐ)
ex) ํผ๋ณด๋์น ์์ด