๋ชฉ์ฐจ
์ฑ๋ฅ ๋ถ์
๋ฌธ์ ํด๊ฒฐ์ ์ํ ๊ฐ์ฅ ์ต์ ์ ๋ฐฉ๋ฒ์ ํํ๊ธฐ ์ํด์๋
๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์ํ๊ณ ๋น๊ตํ ํ ๊ฒฐ์ ํด์ผํ๋ค!
๊ทธ ๋ถ์์ ์ผ๋ฐ์ ์ผ๋ก ๊ณต๊ฐ ๋ณต์ก๋์ ์๊ฐ ๋ณต์ก๋๋ฅผ ํตํด ์ํํ๋ค.
๊ณต๊ฐ ๋ณต์ก๋
์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์คํํ์ฌ ์๋ฃ๊น์ง ํ์ํ ์ด ์ ์ฅ๊ณต๊ฐ์ ์๋ฏธํ๋ค.
์๊ฐ ๋ณต์ก๋
์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์คํํ์ฌ ์๋ฃ๊น์ง ์์๋๋ ์๊ฐ์ ์๋ฏธํ๋ค.
์ด๋, ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์๋ก ๋น๊ตํ๊ธฐ ์ํ ๋ชฉ์ ์ด๋ฏ๋ก
์ ํํ ์คํ ์๊ฐ์ ์ธก์ ๋ณด๋ค ์คํ ๋น๋์๋ฅผ ์ธก์ ํ์ฌ ๋น๊ตํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ ์ฑ๋ฅ ์ฐจ์ด๋ ์คํ ์๊ฐ ์ฐจ์ด์์ ๋ฐ์ํ๋ฏ๋ก
'์ฑ๋ฅ ๋ถ์ ํ๊ธฐ'๋ '์๊ฐ ๋ณต์ก๋ ํ๊ธฐ'๋ฅผ ์๋ฏธํ๋ค!
๋น -์ค ํ๊ธฐ๋ฒ
์๊ณ ๋ฆฌ์ฆ์ด ์ฃผ์ด์ก์ ๋ ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ๋ํ๋ด๋ ํ๊ธฐ๋ฒ์ด๋ค.
์์ ๊ทธ๋ํ๋ฅผ ํตํด์
O(1) < O(log n) < O(n) M < O(n log n) < O(n2) < O(2^n) ...
์ธ ๊ฒ์ ์ ์ ์๋ค.
O(1)
- input์ ํฌ๊ธฐ๊ฐ ์์์๊ฐ์ ์ํฅ์ ์ฃผ์ง ์๋ ์๊ณ ๋ฆฌ์ฆ
O(log n)
ex) i๊ฐ n๊น์ง 2๋ฐฐ์ฉ ์ฆ๊ฐํ๋ ๋ฐ๋ณต๋ฌธ or 1/2๋ฐฐ์ฉ ๊ฐ์
O(n)
- ๋ฐ๋ณต ํ์๊ฐ ์ธํ์ ๋น๋กํ ๋ฐ๋ณต๋ฌธ
ex) for๋ฌธ ์์ for๋ฌธ
O(n log n)
- O(n)๊ณผ O(n log n)์ด ํจ๊ป!
ex) for๋ฌธ ์์ while๋ฌธ i๊ฐ n๊น์ง 2๋ฐฐ์ฉ ์ฆ๊ฐ
๋๊ธ