Master Theorem

by Jerry Sky

2020-03-09


Jeśli T(n)=aT(nb)+O(nd)T(n) = a\cdot T\big(\lceil\frac{n}{b}\rceil\big) + O(n^d) ale pewnych stałych a>0a > 0, b>1b > 1, d0d \ge 0 wówczas:

T(n)={O(nd):d>logbaO(ndlogn):d=logbaO(nlogba):d<logba T(n) = \begin{aligned} \begin{cases} O(n^{d})&: d > \log_b a\\ O(n^{d} \log n)&: d = \log_b a\\ O(n^{\log_b a})&: d < \log_b a \end{cases} \end{aligned}

<insert graph>

problem dzielimy na aa podproblemów, które się dzielą też na aa pod-podproblemów itd.

#d Rozmiar
11 nn
aa nb\frac{n}{b}
a2a^2 nb2\frac{n}{b^2}
aka^k nbk\frac{n}{b^k}
alog2na^{\log_2n} 11

alog2na^{\log_2n} = nlogban^{\log_ba}

koszt kk-tego wiersza rekursji: O((nbk)d)ak=O(nd)(abd)ks O\bigg(\Big(\frac{n}{b^k}\Big)^d\bigg) \cdot a^k = O\big(n^d\big) \cdot \bigg(\frac{a}{b^d}\bigg)^k s koszt całego drzewa: k=0logbnO(nd)(abd)k=O(nd)k=0logbn(abd)k \sum_{k=0}^{\log_bn}O(n^d)\cdot\Big(\frac{a}{b^d}\Big)^k = O\big(n^d\big) \cdot \sum_{k=0}^{\log_bn}\Big(\frac{a}{b^d}\Big)^k mamy k=0xqk=1qx+11q\sum_{k=0}^{x}q^k = \frac{1-q^{x+1}}{1- q} dla q1q \neq 1 za to dla q=1q = 1 mamy k=0x1=x+1\sum_{k=0}^{x}1 = x + 1