请注意,本文编写于 113 天前,最后修改于 113 天前,其中某些信息可能已经过时。
主定理
主定理是用于计算如下递推形式的时间复杂度
T(n)=aT(bn)+f(n)
根据f(n)与 logba 的大小关系分为四种情况
f(n)>=<?nlogba
- f(n)=O(nlogba−ϵ) 可以理解为 f(n)<nlogba, 则有
T(n)=Θ(nlogba)
- f(n)=Θ(nlogba) 可以理解为 f(n)=nlogba, 则有
T(n)=Θ(nlogbalogn)
- f(n)=Ω(nlogba+ϵ) 可以理解为 f(n)>nlogba, 则有
T(n)=f(n)
- 第四种情形是特殊的, 当f(n)=Ω(nlogbalogkn) 即 f(n)=nlogbalogkn时
T(n)=Θ(nlogbalogk+1n)
简化的主定理
如果取f(n)是多项式复杂度的, 即 f(n)=O(nd), 递推式即
T(n)=aT(bn)+O(nd)
那么就能讲主定理简化为
- d<logba
T(n)=O(nlogba)
- d=logba
T(n)=O(ndlogn)
- d>logba
T(n)=O(nd) 本文作者:GBwater
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!