-
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: ๋ฐฐ์ด ํฌ๊ธฐ) '์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๋ฐ ์ค์ต' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Chap1 1.2 The Importance of Developing Efficient Algorithms (0) 2025.04.04 Chap1 1.1 Algorithms : problem, solution, algorithm (0) 2025.04.04 Chap1 - 0. ํ์ต ๋ชฉํ ๋ฐ ๋ฐฉ๋ฒ (0) 2025.04.04