์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๋ฐ ์ค์ต
Chap 1.3 Analysis of Algorithms
๋ฐ๋ถ์ฅ
2025. 4. 5. 21:12
์ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์ํด์ผ ํ ๊น?
- ๊ฐ์ ๋ฌธ์ ๋ฅผ ํธ๋ ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ์ด ์์ ์ ์์
- ์ด๋ค ๊ฒ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ์ง๋ฅผ ํ๋จํ๋ ค๋ฉด ๋ถ์ ํ์
- ์ค์ ์ปดํจํฐ ์ฑ๋ฅ, ์ธ์ด, ๊ตฌํ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์คํ ์๊ฐ์ ๋ฌ๋ผ์ง์ง๋ง
์ด๋ก ์ ๋ถ์์ ์ ๋ ฅ ํฌ๊ธฐ n์ ๋ฐ๋ฅธ ๊ฒฝํฅ์ฑ์ ์๋ ค์ค
๐ ์๋ฌธ
In general, a time complexity analysis of an algorithm is the determination of how
many times the basic operation is done for each value of the input size.
โ ํด์
์ผ๋ฐ์ ์ผ๋ก, ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋ ๋ถ์์ด๋
์ ๋ ฅ ํฌ๊ธฐ์ ๊ฐ ๊ฐ์ ๋ํด ๊ธฐ๋ณธ ์ฐ์ฐ์ด ๋ช ๋ฒ ์ํ๋๋์ง๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค.
๋ถ์์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์
๊ตฌ์ฑ์์ | ์๋ฏธ |
์ ๋ ฅ ํฌ๊ธฐ(input size) | ๋ฌธ์ ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ (ex: ๋ฐฐ์ด์ ๊ธธ์ด n) |
๊ธฐ๋ณธ ์ฐ์ฐ(basic operation) | ๋ถ์ ๋์์ด ๋๋ ๋ฐ๋ณต ์ฐ์ฐ (ex: ๋น๊ต, ๋ง์ ๋ฑ) |
T(n) | ์ ๋ ฅ ํฌ๊ธฐ๊ฐ n์ผ ๋ ๊ธฐ๋ณธ ์ฐ์ฐ์ ์คํ ํ์ |
์ ๋ ฅ ํฌ๊ธฐ ์์
- ๋ฐฐ์ด์ ํฉ ๊ณ์ฐ: ์ ๋ ฅ ํฌ๊ธฐ = ์์ ๊ฐ์ n
- ํ๋ ฌ ๊ณฑ์ : ์ ๋ ฅ ํฌ๊ธฐ = ํ๋ ฌ ํฌ๊ธฐ n × n → ๊ทธ๋ฅ n์ผ๋ก ์ฌ์ฉ
- ํผ๋ณด๋์น ์ ๊ณ์ฐ: ์ ๋ ฅ์ n, ํ์ง๋ง ์ ๋ ฅ ํฌ๊ธฐ๋ logโn์ด ๋ ์๋ ์์ (์ ์์ ๋นํธ ์)
์๊ฐ๋ณต์ก๋ ์ข ๋ฅ
ํ๊ธฐ | ์๋ฏธ |
T(n) | ๋ชจ๋ ์ ๋ ฅ์ ๋ํด ํญ์ ๊ฐ์ ์ฐ์ฐ ํ์ → “every-case” |
W(n) | ๊ฐ์ฅ ๋ง์ ์ฐ์ฐ → “์ต์ (worst-case)” |
A(n) | ํ๊ท ์ ์ธ ์ฐ์ฐ → “ํ๊ท (average-case)” |
B(n) | ๊ฐ์ฅ ์ ์ ์ฐ์ฐ → “์ต์ (best-case)” |
๐ ์์ ๋ถ์๋ค
๐น [์์ ] Algorithm 1.2 – Add Array Members
sum ← 0
for i = 1 to n
sum ← sum + S[i]
- ์ ๋ ฅ ํฌ๊ธฐ: n
- ๊ธฐ๋ณธ ์ฐ์ฐ: ๋ง์ 1๋ฒ
- ๋ฐ๋ณต ํ์: n๋ฒ
- T(n) = n
๐น [์์ ] Algorithm 1.3 – Exchange Sort
for i = 1 to n-1
for j = i+1 to n
if S[j] < S[i] then exchange
- ๋น๊ต ํ์ ์ดํฉ:(n−1)+(n−2)+...+1=n(n−1)2
- T(n) = O(n²)
๐น [์์ ] Algorithm 1.1 – Sequential Search
- x๊ฐ ๋งจ ์์ ์์ผ๋ฉด 1๋ฒ, ์์ผ๋ฉด n๋ฒ → ์ ๋ ฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง
- ๋ฐ๋ผ์ T(n) ์์, ๋์ :
๋ถ์ | ๊ฒฐ๊ณผ |
W(n) | n (x๊ฐ ๋ง์ง๋ง or ์์) |
B(n) | 1 (x๊ฐ ์ฒซ ๋ฒ์งธ ์์) |
A(n) | ![]() |
โ ๏ธ ํ๊ท ๋ถ์ ์ ์ฃผ์
- ํ๊ท = ๋ํ๊ฐ์ด ์๋๋ค
์: ์๊ธ ์์คํ ์ฒ๋ผ ๋จ ํ ๋ฒ์ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ ์ํ - ๊ทธ๋์ ์ค์ ์์๋ ํ๊ท ๋ณด๋ค ์ต์ ๋ถ์(W(n))์ด ๋ ์ค์!!
ํค์๋ ์ ๋ฆฌ
์ฉ์ด | ๋ป |
T(n) | ๋ชจ๋ ์ ๋ ฅ์์ ํญ์ ๊ฐ์ ์ฐ์ฐ ํ์ |
W(n) | ์ต์ ์ ๊ฒฝ์ฐ ์ฐ์ฐ ํ์ |
A(n) | ์ ๋ ฅ์ ๋ถํฌ๋ฅผ ๊ณ ๋ คํ ํ๊ท ์ฐ์ฐ ํ์ |
B(n) | ์ต์ ์ ๊ฒฝ์ฐ ์ฐ์ฐ ํ์ |
๊ธฐ๋ณธ ์ฐ์ฐ | ๋น๊ต, ๋ง์ ๋ฑ ๋ฐ๋ณต๋๋ ์ฐ์ฐ (๋ถ์ ๋์) |
์ ๋ ฅ ํฌ๊ธฐ | ๋ฌธ์ ๋ฅผ ์ ์ํ๋ ๋ฐ์ดํฐ์ ์ (ex: ๋ฐฐ์ด ํฌ๊ธฐ) |