分治法主定理

主定理的证明
假设有递归式:
T(n)=aT(nb)+f(n)T(n) = aT(\frac{n}{b}) + f(n)T(n)=aT(bn)+f(n)
证明:
T(n)=aT(n/b)+f(n)T(n) = aT(n/b) + f(n) T(n)=aT(n/b)+f(n)=a[aT(n/b2)+f(n/b)]+f(n) = a\big[aT(n/b^2)+f(n/b)\big] + f(n) =a[aT(n/b2)+f(n/b)]+f(n)=a2T(n/b2)+f(n)+af(n/b) = a^2T(n/b^2) + f(n) + af(n/b) ~\,=a2T(n/b2)+f(n)+af(n/b) =akT(n/bk)+∑j=0k−1ajf(n/bj) = a^{k}T(n/b^k) + \sum_{j=0}^{k-1} a^j f(n/b^j) ~~~~=akT(n/bk)+j=0∑k−1ajf(n/bj) =⋯ (不妨设n是b的幂) = \cdots ~(不妨设n是b的幂)~~~~~~~~~~~~=⋯ (不妨设n是b的幂) =alogbnT(1)+∑j=0logbn−1ajf(n/bj) = a^{log_b^n}T(1) + \sum_{j=0}^{log_b^n-1} a^j f(n/b^j) ~~ =alogbnT(1)+j=0∑logbn−1ajf

本文详细解析了分治法主定理的证明过程,通过递归式T(n)=aT(n/b)+f(n),推导出不同情况下T(n)的渐进复杂度,包括当a<b^k(k>log_b^a)、a>b^k和a=b^k三种情况下的复杂度。
最低0.47元/天 解锁文章
5515

被折叠的 条评论
为什么被折叠?



