์ดํƒœํ™
ํ™'story
์ดํƒœํ™
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171)
    • TW (39)
    • AI (47)
      • ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ (10)
      • Kaggle (2)
      • Machine Learning (26)
      • Computer Vision (0)
      • Deep Learning (0)
      • ROS2 (7)
    • Computer Science (29)
      • Data Structure (0)
      • Algorithm (18)
      • Computer Architecture (5)
      • SOLID (0)
      • System Programing (6)
    • LOLPAGO (10)
      • ํ”„๋ก ํŠธ์—”๋“œ (10)
      • ๋ฐฑ์—”๋“œ (0)
    • BAEKJOON (2)
    • React (5)
    • ์–ธ์–ด (8)
      • C++ (8)
    • GIT (0)
    • MOGAKCO (19)
    • ๋ฏธ๊ตญ ์—ฌํ–‰๊ธฐ (3)
    • etc. (7)
      • Blog (2)
      • ์ฝœ๋ผํ†ค (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Ai
  • ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•
  • computer architecture
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • C++
  • ๋จธ์‹ ๋Ÿฌ๋‹
  • ROS2
  • kaggle
  • react
  • tw
  • ML
  • pytorch
  • ๋”ฅ๋Ÿฌ๋‹
  • LOLPAGO
  • ๋ฐฑ์ค€
  • algorithm
  • baekjoon
  • NLP
  • ๊ธฐ๊ณ„ํ•™์Šต
  • computerscience

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
์ดํƒœํ™

ํ™'story

[Algorithm] ๋ถ„ํ• ์ •๋ณต(1) - Master Theorem๊ณผ ์ผ๋ฐ˜ํ•ด
Computer Science/Algorithm

[Algorithm] ๋ถ„ํ• ์ •๋ณต(1) - Master Theorem๊ณผ ์ผ๋ฐ˜ํ•ด

2022. 9. 28. 11:30

๐Ÿค” Divide And Conquer

๋ถ„ํ• ์ •๋ณต์ด๋ž€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•œ ๋’ค ๋ถ„ํ• ๋œ ๋ฌธ์ œ๋“ค์„ ์žฌ๊ท€์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์—ฌ ํ•ด๋‹น ๋‹ต์„ ์ ์ ˆํ•˜๊ฒŒ ์กฐํ•ฉํ•˜์—ฌ ํฐ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ œ์‹œํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ ๋ถ„ํ• ๋œ ๋ฌธ์ œ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ Conquer์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๋ถ„ํ• ์ •๋ณต์„ Master Theorem์˜ ์ผ๋ฐ˜ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

๐Ÿ”Ž Master Theorem

Master Theorem์—์„œ Input Size๊ฐ€ $n$์ผ๋•Œ ๋ถ„ํ• ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

์ƒ์ˆ˜ $a > 0, b > 1, d ≥ 0$์— ๋Œ€ํ•˜์—ฌ

1. ๋ฌธ์ œ๋ฅผ size๊ฐ€ $\frac{n}{b}$์ธ $a$๊ฐœ์˜ subproblem์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (recursively ํ•˜๊ฒŒ)

2. ๊ฐ๊ฐ์˜ subproblem์„ ํ•ด๊ฒฐํ•œ ๋’ค, $O(n^d) ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ subproblem์˜ ๋‹ต์„ mergeํ•œ๋‹ค.

 

 

 

์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ $T(n)$์ด ๋ฌธ์ œ๋ฅผ ํ•˜๊ฒฐํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋ผ๊ณ  ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

$$T(n) = aT(\frac{n}{b}) + O(n^d)$$

 

ํ•ด๋‹น ์‹์„ ํ†ตํ•ด ์ผ๋ฐ˜ํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ผ๋ฐ˜ํ•ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

 

๊ทธ๋ฆผ๊ณผ ์‹์˜ ํ’€์ด๋ฅผ ํ†ตํ•ด ์œ„๋ฅผ ์ฆ๋ช…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

์œ„์˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ๊ฐ ๋…ธ๋“œ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ œ๋Š” $a$๊ฐœ์˜ subproblem๋“ค๋กœ ์ชผ๊ฐœ์ง€๋ฉฐ ๋ฌธ์ œ์˜ ํฌ๊ธฐ๋Š” $\frac{1}{b}$๋ฐฐ ์”ฉ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์œ„์˜ ํŠธ๋ฆฌ์˜ ๋†’์ด๋Š” $log_bn$์ด ๋ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ k๋ฒˆ์งธ level์˜ ๋…ธ๋“œ ์ˆ˜๋Š” ์ตœ๋Œ€ $a^k$๊ฐœ์ด๊ณ , ๊ฐ๊ฐ์˜ ๋…ธ๋“œ์— ํ•ด๋‹นํ•˜๋Š” subproblem์˜ ํฌ๊ธฐ๋Š” $\frac{n}{b^k}$๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ์‹์˜ ํ’€์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

์œ„์™€ ๊ฐ™์ด ์‹์„ ์ •๋ฆฌํ–ˆ์„ ๋•Œ ์‹์ด ๋“ฑ๋น„์ˆ˜์—ด์˜ ํ˜•ํƒœ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ตญ ๊ณต๋น„์ธ $\frac{a}{b^d}$์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ†ตํ•ด $T(n)$์˜ ์ผ๋ฐ˜ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

์œ„์˜ ์ผ๋ฐ˜ํ•ด๋ฅผ ํ†ตํ•ด ์•ž์—์„œ ๋‹ค๋ฃฌ Merge Sort์˜ ์ผ๋ฐ˜ํ•ด๋ฅผ ๋ฐ”๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Merge Sort์˜ ๊ฒฝ์šฐ ๊ธฐ์กด ๋ฌธ์ œ์˜ ํฌ๊ธฐ๋ฅผ $\frac{1}{2}$๋ฐฐ์˜ ํฌ๊ธฐ์ธ 2๊ฐœ์˜ subproblem์„ ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค..

 

์ฆ‰ $a = 2, b = 2$์ด๋ฉฐ ์•ž์—์„œ subproblem์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ $O(n)$์ด๋ผ๊ณ  ์ •์˜ ํ–ˆ์œผ๋ฏ€๋กœ $d = 1$๋Š” ์ด๋ผ๋Š” ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ Master Theorem์— ๋Œ€์ž…ํ•˜๋ฉด $T(n) = 2T(\frac{n}{2}) + O(n)$์˜ ์ผ๋ฐ˜ํ•ด $(n) = O(nlogn)$์ด ๋จ์„ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.($d = log_ba$์˜ ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ)

'Computer Science > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Algorithm] ๋ถ„ํ• ์ •๋ณต(5) - Median of Medians  (0) 2022.10.04
[Algorithm] ๋ถ„ํ• ์ •๋ณต(2) - Multiplication  (0) 2022.09.29
[Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ณธ(2) - Basic Arithmetic  (0) 2022.09.28
[Algorithm] Master Theorem ๋ง›๋ณด๊ธฐ  (0) 2022.09.14
[Algorithm] ๋ถ„ํ• ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ง›๋ณด๊ธฐ  (0) 2022.09.13
    'Computer Science/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Algorithm] ๋ถ„ํ• ์ •๋ณต(5) - Median of Medians
    • [Algorithm] ๋ถ„ํ• ์ •๋ณต(2) - Multiplication
    • [Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ณธ(2) - Basic Arithmetic
    • [Algorithm] Master Theorem ๋ง›๋ณด๊ธฐ
    ์ดํƒœํ™
    ์ดํƒœํ™
    ๊ณต๋ถ€ํ•˜์ž ํƒœํ™์•„

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”