์ง๋ ํฌ์คํ ์์๋ ์๊ณ ๋ฆฌ์ฆ ๋ถ์์ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ฒ๋ค์ ์ ์๋ค.
์์ฌ ์ฝ๋๋ฅผ ํ์ฉํ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ํํํ๊ธฐ๋ ํ๋๋ฐ, ์ ์ ๋ฐฐ์ ๋ฏ์ด ์ฌ์ฉํ๋ ํ๋์จ์ด์ ์ํํธ์จ์ด์ ๊ด๊ณ์์ด ์คํ์๊ฐ์ ์ถ์ ํด์ผ ํ๋ค.
์ด๋ ์์์ ๊ทผ๊ธฐ๊ณ ๋ชจ๋ธ(Random Access Machine, RAM)์ ์ฌ์ฉํ๋๋ฐ,
- ํ๋์ ์ค์์ฒ๋ฆฌ์ฅ์น(CPU)
- ๋ฌด์ ํ์ ๋ฉ๋ชจ๋ฆฌ์
์ ์ฌ์ฉํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ ๋ค์ ์๋ฒ์ผ๋ก ๋์ด๋๋ฉฐ ์ด๋ค ์ ์ ๋ํ ์ ๊ทผ์ด๋ผ๋ ๋์ผํ ์๊ฐ ๋จ์(์์)๊ฐ ์์๋๋ค๊ณ ๊ฐ์ ํ๋ค.
๋ํ ์์ ์์ (Primitive Operations)์ ์ต๋ ๊ฐ์๋ฅผ ์ ๋ ฅํฌ๊ธฐ์ ํจ์ ํํ๋ก ๊ฒฐ์ ํ ์ ์๋๋ฐ, ์์ ์์ ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ํ๋๋ ๊ธฐ๋ณธ์ ์ธ ๊ณ์ฐ์ ์๋ฏธํ๋ค.
์๋ฅผ ๋ค์ด
- ์ฐ์ ์/๋ ผ๋ฆฌ์์ ํ๊ฐ (EXP)
- ๋ณ์์ ํน์ ๊ฐ์ ์นํ (ASS)
- ๋ฐฐ์ด์์ ์ ๊ทผ (IND)
- ๋ฉ์๋ ํธ์ถ (CAL)
- ๋ฉ์๋๋ก๋ถํฐ ๋ฐํ (RET)
๋ฑ์ด ์๋ค. ์์ ์์ ์ ์์ ์ ๊ทผ ๊ธฐ๊ณ ๋ชจ๋ธ์์ ์ํ ์ ์์ ์๊ฐ์ด ์์๋๋ค๊ณ ๊ฐ์ ํ๋ค.
์ฐ๋ฆฌ๋ ์์์์ ์ ์ต๋ ๊ฐ์๋ฅผ ํ์ฉํ์ฌ ์คํ์๊ฐ์ ์ถ์ ํ ์ ์๋ค.
์์ arrayMax๋ ์ต์ ์ ๊ฒฝ์ฐ 7n-2 ๊ฐ์ ์์์์ ์ ์คํํ๋๋ฐ, a = ๊ฐ์ฅ ๋น ๋ฅธ ์์ ์์ ์คํ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ / b = ๊ฐ์ฅ ๋๋ฆฐ ์์์์ ์คํ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ผ๊ณ ์ ์ํ๊ณ T(n) = arrayMax์ ์ต์ ์ธ ๊ฒฝ์ฐ์ ์๊ฐ์ด๋ผ๊ณ ๋์ผ๋ฉด ๋ค์ ์์ด ์ฑ๋ฆฝํ๋ค.
$$ a(7n-2) <= T(n) <= b(7n-2) $$
์ฆ, ์คํ์๊ฐ T(n)์ ๋ ๊ฐ์ ์ ํ ํจ์ ์ฌ์ด์ ๋์ด๊ฒ ๋๊ณ , ํ๋์จ์ด๋ ์ํํธ์จ์ด ํ๊ฒฝ์ ๋ณ๊ฒฝํ๋ฉด T(n)์ ์์ ๋ฐฐ์๋งํผ์ ์ํฅ์ ์ฃผ์ง๋ง, T(n)์ ์ฆ๊ฐ์จ์ ๋ณํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์ ํ์ ์ฆ๊ฐ์จ์ ๋ํ๋ด๋ ์คํ์๊ฐ T(n)์ arrayMax์ ๊ณ ์ ํ ์์ฑ์ด๋ค.
์ฐ๋ฆฌ๋ ์ ๊ทผ๋ถ์(asymptotic analysis)์ ํจ์ผ๋ก์จ Big-oh ํ๊ธฐ๋ฒ์ ์ํ ์คํ์๊ฐ์ ๊ตฌํ ์ ์๋ค. ์ ๊ทผ ๋ถ์์ ์ํํ๊ธฐ ์ํด์๋ ๋ ๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค.
- ์ต์ ์ ์์์์ ์คํ ํ์๋ฅผ ์ ๋ ฅ ํฌ๊ธฐ์ ํจ์๋ก์ ๊ตฌํ๋ค.
- ์ด ํจ์๋ฅผ big-oh ํ๊ธฐ๋ฒ์ผ๋ก ๋ํ๋ธ๋ค.
์์ ๊ฐ์ด 7n-2๊ฐ์ ์์์์ ์ ์คํํ๋ค๋ฉด, "์๊ณ ๋ฆฌ์ฆ์ด O(n)์๊ฐ์ ์ํ๋๋ค."๋ผ๊ณ ๋งํ๋ค. (์์ ๊ณ์์ ๋ฎ์ ์ฐจ์์ ํญ๋ค์ ๊ฒฐ๊ตญ ํ๋ฝ๋๋ฏ๋ก ์์ ์์ ์๋ฅผ ๊ณ์ฐํ ๋๋ถํฐ ์ด๋ค์ ๋ฌด์ ๊ฐ๋ฅ)
๋ฐ๋ณต๋ฌธ, ์ฐ์ ๋ฌธ, ์กฐ๊ฑด๋ฌธ ๋ฑ์ ์์ฃผ ๋ณด๋ฉด ์คํ์๊ฐ์ ๋น ๋ฅด๊ฒ ๋์น์ฑ ์ ์๋ค.
์ ํ์ ์ธ ์ฆ๊ฐํจ์๋ค์ Plot์ ๋ณด์.
์ฐ๋ฆฌ๋ $$ 2^n, n^3, n^2 $$ ๋ฑ์ ์ฆ๊ฐ์จ์ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ์ $$ nlogn $$ ํน์ ๊ทธ ์ดํ์ ์ฆ๊ฐ์จ์ ๊ฐ์ง๋๋ก ๋ง๋ค๊ธฐ๋ฅผ ์ํ๋ค!